不从SharedPreference得到整数值(not getting integer value

2019-08-05 13:59发布

我试图存储用户ID SharedPreference的一个活动,并希望得到这个整数ID的任何活动。
摆在共享偏好我用下面的代码此值。

SharedPreferences myPrefs = getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
SharedPreferences.Editor prefsEditor = myPrefs.edit();
prefsEditor.putInt("userId", varaible);                 
prefsEditor.commit();  

那么我试图让这个价值,我用这下面的代码

SharedPreferences myPrefs = getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
    int userId = myPrefs.getInt("userId", -1);  

但它返回我不-1用户ID。 和如果我使用下面的行来获取整数值那么它将显示运行时异常。

    int userId = myPrefs.getInt("userId", Integer(null));   

我不明白什么是错在我的代码。 如何获得这个整数用户id在我的另一项活动。
请给我任何参考或提示。
提前致谢。

Answer 1:

更改此:

SharedPreferences myPrefs = getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
int userId = myPrefs.getInt("userId", -1);  

SharedPreferences myPrefs = getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
int userId = myPrefs.getInt("userId", 0);  

它应该工作的方式。



Answer 2:

没有什么不对您的代码,我测试了这个确切的情况下,它是可以正常使用。 为了确保您可以使用默认值,为-1。

你有没有在同一个应用程序都活动?

我可以建议的调试,以确保您的应用程序在你所期望的序列和值正确存储上运行。 您可以尝试在同一活动中存放后直接检索它。



文章来源: not getting integer value from SharedPreference