android - 如何在 onSaveInstanceState 中保存一个 JSONObject?

标签 android save restore

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

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();
}

关于android - 如何在 onSaveInstanceState 中保存一个 JSONObject?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23801480/

相关文章:

android - Android Studio 3.2.1 升级后的构建错误

android - 我可以在 Android 中用匹配的组进行正则表达式替换吗?

Python 2.7 : Check if excel file is already open in program before saving it

java - SQLException : Field doesn't have a default value

c# - 如何以编程方式关闭与数据库的所有现有连接

android - 从 SQLite 数据库中删除数据

android - Dagger 2、库模块和@Singleton

java - 如何保存一些 TextView 并从另一个类加载它们?

PostgreSQL 恢复备份解决方案

java - 在java运行时Process.waitFor()中执行mysql恢复命令总是返回1