Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在onSaveInstanceState中保存JSONObject?_Android_Save_Restore - Fatal编程技术网

Android 如何在onSaveInstanceState中保存JSONObject?

Android 如何在onSaveInstanceState中保存JSONObject?,android,save,restore,Android,Save,Restore,我对JSONObject有问题,因为我不知道如何保存它。 我不想每次都从文件中加载它,因为之后JSONObject将被更改,而且每次活动恢复时加载文件似乎是浪费资源。我怎么做 private JSONParser jParser; private JSONObject jObj; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setC

我对JSONObject有问题,因为我不知道如何保存它。 我不想每次都从文件中加载它,因为之后JSONObject将被更改,而且每次活动恢复时加载文件似乎是浪费资源。我怎么做

private JSONParser jParser;
private JSONObject jObj;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    if(savedInstanceState == null){
        jParser = new JSONParser();
        setjObj(jParser.getJSONFromFile(this));
    }
    else {
           // savedInstanceState.get(jObj);
    }

}

@Override
protected void onSaveInstanceState(Bundle outState) {

    // outState.put(jObj); 

    super.onSaveInstanceState(outState);
}
//插入

savedInstanceState.putString("myJSON", myJsonObject.toString());
//阅读

try {
        String jsonString = savedInstanceState.getString("myJSON");
        JSONObject myObj = new JSONObject(jsonString);
} catch (JSONException e) {
    e.printStackTrace();
}
//插入

savedInstanceState.putString("myJSON", myJsonObject.toString());
//阅读

try {
        String jsonString = savedInstanceState.getString("myJSON");
        JSONObject myObj = new JSONObject(jsonString);
} catch (JSONException e) {
    e.printStackTrace();
}

您可以将一个json字符串放入outState(json.toString())。然后,您可以在需要时将该字符串转换为JSONObject。您可以将json字符串放入outState(json.toString())。然后,您可以在需要时将字符串转换为JSONObject