我有一个存储jSON数组的SharedPreferences。
JSONArray jArray = new JSONArray(result);
editor.putString("inventoryKey", result);
editor.commit();
然后,当我把它换回另一个片段时。
SharedPreferences sharedpreferences = this.getActivity().getSharedPreferences(MainActivity.MyPREFERENCES, Context.MODE_PRIVATE);
String strJson = sharedpreferences.getString("inventoryKey", null);
我真的很难过,因为当我运行这个片段时,我得到了NPE。我决定使用:
在log cat中输入strJson的值Log.i("info2",strJson);
出现以下内容:
注意它如何检索当前的jSON然后用null替换它。根据logcat,它恰好同时发生。
我对这种情况感到非常难过,我不知道为什么会这样。任何帮助表示赞赏。谢谢!
编辑:所以,试图找出原因,我不知怎的做了这个
strJson = sharedpreferences.getString("inventoryKey", "hello");
Log.i("tester",strJson);
我很惊讶,logcat打印出来的一样。如果它返回一个空值,则getString应该得到" hello"对?相反,它仍然输出null。那么,putString而不是getString是否存在问题?