在我的onCreate
中,我从文件中将一个json字符串读入字符串myData中。然后将其加载到JSONObject allTheArray
在我的onCreate
中,我有一个button_saveData.setOnClickListener(new View.OnClickListener()
等。
我希望它更新JSONObject
中的值,然后再次写入本地文件。
如果我在JSONObject myNewData
内创建一个新的onClickListener
并使用
myNewData.put(name,value)
这有效。
但是,如果我尝试这样做,我将无法访问JSONObject allTheArray
中的allTheArray.put(name,value)
来使用onClickListener
。
问题:如何在JSONObject allTheArray
中定义原始onCreate
,以便可以在onClickListener
伪代码:
protected Void onCreate(etc){
String myData = readFromFile(this,data);
JSONObject allTheArray = null;
allTheArray = new JSONObject(myData);
String value_id = allTheArray.getString("id");
text_id.setText(value_id);
}
onClickListener {
it is in here I want to update allTheArray
allTheArray.put(name,value);(I cannot access allTheArray here)
then save
}
所以再次问:在onCreate中定义了JSONObject后,如何在JSONObject中使其可用。
答案 0 :(得分:1)
要么将allTheArray
设置为全局
JSONObject allTheArray = null;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String myData = readFromFile(this, data);
allTheArray = new JSONObject(myData);
....
}
或将其标记为final
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String myData = readFromFile(this, data);
final JSONObject allTheArray = new JSONObject(myData);
...
}