我有一个大脑冻结,因为那个明显的功能没有看到为我工作,任何帮助,将不胜感激。这是我做的:SharedPreferences在活动之间不起作用
- 开放活动一
- 读取SharedPreferences该活动
- 开放活动B
- 删除这两个项目在SharedPreferences对象
- 保存喜好的一个
- 围棋回到活动B重读SharedPreferences我仍然看到两项
这两个活动似乎都有自己的SharedPreferences个人实例。是否有更好的解决方案来分享活动中的变量,我在这里做了什么错误?
谢谢
//
// Activity A
//
SharedPreferences prefToDos = this.getApplicationContext().getSharedPreferences("MyPref_ToDos", MODE_PRIVATE);
SharedPreferences.Editor editorToDos = prefToDos.edit();
// Works OK I get 2 items for that activity
JSONArray jArrToDos = new JSONArray(prefToDos.getString("todos",null));
//
// Activity B
//
SharedPreferences prefToDos = this.getApplicationContext().getSharedPreferences("MyPref_ToDos", MODE_PRIVATE);
SharedPreferences.Editor editorToDos = prefToDos.edit();
// Works OK I get 2 items for that activity
JSONArray jArrToDos = new JSONArray(prefToDos.getString("todos",null));
//Yes button clicked
jArrToDos.remove(todoIndex);
editorToDos.putString("todos",jArrToDos.toString());
editorToDos.commit();
finish();
//
// Back to Activity A to onResume()
//
SharedPreferences prefToDos = this.getApplicationContext().getSharedPreferences("MyPref_ToDos", MODE_PRIVATE);
SharedPreferences.Editor editorToDos = prefToDos.edit();
// DOESN'T WORK I still get 2 items for that activity
JSONArray jArrToDos = new JSONArray(prefToDos.getString("todos",null));
jArrToDos.remove(todoIndex); editorToDos.putString(“todos”,jArrToDos.toString());删除后你在jArrToDos中得到了什么? –
@Radek首先检查您的sharedpreference是否更新,然后检查您的onResume方法在ActivityA中正常工作。尝试调试这个或打印日志。 –
看到这个[点击我的sharedpreference](http:// stackoverflow。com/a/42268095/7399521)我希望这会对你有帮助 –