【发布时间】:2016-08-17 17:34:41
【问题描述】:
我正在尝试创建一个读取 Json 值的类。 MainActivity 类中的函数工作正常,但是,如果我尝试创建一个单独的类文件,我会收到以下错误:non-static method getAssets() cannot be referenced as stain context。
我该如何解决这个问题?
public class jsonClass extends AppCompatActivity {
private static Context mContext;
static String loadJSONFromAsset(String file) {
String json = null;
try {
InputStream is = getAssets().open(file); //ERROR
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
json = new String(buffer, "UTF-8");
} catch (IOException ex) {
ex.printStackTrace();
return null;
}
return json;
}
static String getJsonValue(String jsonFile, String anni, String level, String getValue) {
String value = null;
JSONObject object = null;
try {
// Seleziona il file Json
object = new JSONObject(loadJSONFromAsset(jsonFile));
//Oggetto JSON per ogni anno
JSONObject getEra = object.getJSONObject(anni);
//Lista Livelli per ogni anno
JSONObject getLevel = getEra.getJSONObject(level);
//Ritorna Valore scelto per ogni Livello
value = getLevel.getString(getValue);
} catch (JSONException e) {
e.printStackTrace();
}
return value;
}
}
【问题讨论】:
-
你在哪里得到错误?显示该代码
-
在声明类时尝试删除 static 关键字:loadJSONFromAsset
-
出现错误:
InputStream is = getAssets().open(file); //ERROR -
欢迎来到 Stack Overflow!您能否在解决问题的努力下,在内容中提供更好的标题和更详细的信息?
-
也欢迎您。我觉得内容有足够详细的信息,而且标题正是问我需要什么
标签: java android static-methods