我已经设置JsonArray
了JsonObject
Application 类以使这些对象成为全局对象。在设备重新启动之前检索存储在 json 数组中的值。重启后 json 数组显示空白 squre '[]' 括号。没有重新启动它向我显示了 json 数组的值。但重启后就不行了。任何建议或指导,以便我可以做到这一点。
这是Application
课
public class MyApplicationClass extends Application{
public static final String PREFS_NAME = "PrefsFile";
private JSONArray jsonArray=new JSONArray();
private jsonObject jsonObj=new jsonObject();
public JSONArray getjsonArray() {
return jsonArray;
}
public void setjsonArray(JSONArray jsonArray) {
this.jsonArray = jsonArray;
}
public jsonObject getjsonObj() {
return jsonObj;
}
public void setjjsonObj(jsonObject jsonObj) {
this.jsonObj = jsonObj;
}
}
在这里我设置 JsonArray & JsonObject
// jsonObj, jsonArray declare as class variables
//getting global JsonArray object
final MyApplicationClass AppObj=(MyApplicationClass )getApplicationContext();
final JSONArray jsonArray=AppObj.getJsonAlarmArray();
// getting name of sharedPreferences file & mode
sharedPrefs=getSharedPreferences(MyApplicationClass.PREFS_NAME, Context.MODE_PRIVATE);
final JSONObject jsonObj =AppObj.getJsonObj();
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(some condition)
{
jsonObj.put("value1", 1234);
jsonObj.put("value2", 234);
jsonObj.put("value3", 3);
}
else if(some condition))
{
jsonObj.put("value1", 12314);
jsonObj.put("value2", 2314);
jsonObj.put("value3", 31);
}
jsonArray.put(jsonObj);
AppObj.setJsonAlarmArray(jsonArray);
editor= sharedPrefs.edit();
editor.putString("key", jsonArray.toString());
System.out.println(jsonArray.toString());
editor.commit();
}
});
这样我正在检索 json 数组
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
sharedPrefs=getSharedPreferences(MyApplicationClass.PREFS_NAME, 0);
try {
JSONArray jsonArray=((MyApplicationClass)getApplication()).getJsonAlarmArray();
System.out.println(jsonArray.toString());
Toast.makeText(TypesActivity.this, ""+jsonArray, Toast.LENGTH_LONG).show();
} catch (Exception e) {
e.printStackTrace();
}
}
});