SharedPreferences.GetString获得正确的值和null

时间:2014-10-26 12:39:00

标签: android json null sharedpreferences

美好的一天!我刚接触Android编程,目前我处于困境中。

我有一个存储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);

出现以下内容:

link to picture of logcat

注意它如何检索当前的jSON然后用null替换它。根据logcat,它恰好同时发生。

我对这种情况感到非常难过,我不知道为什么会这样。任何帮助表示赞赏。谢谢!

编辑:所以,试图找出原因,我不知怎的做了这个

strJson = sharedpreferences.getString("inventoryKey", "hello");
Log.i("tester",strJson);

我很惊讶,logcat打印出来的一样。如果它返回一个空值,则getString应该得到" hello"对?相反,它仍然输出null。那么,putString而不是getString是否存在问题?

0 个答案:

没有答案