1

我正在尝试将用户 ID 存储在 SharedPreference 中的一个活动中,并希望在任何活动中获取此整数 ID。
要将此值放入 Shared Preference 中,我使用以下代码。

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 而不是 userId。如果我使用以下行来获取整数值,那么它将显示运行时异常。

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

我不明白我的代码有什么问题。如何在我的另一个活动中获取此整数用户 ID。
请给我任何参考或提示。
提前致谢。

4

2 回答 2

0

您的代码没有任何问题,我测试了这个确切的案例,它运行良好。当然,您可以使用默认值-1

你在同一个应用程序中有两个活动吗?

我对调试的建议是确保您的应用程序按照您期望的顺序运行并且该值被正确存储。您可以尝试将其存储在同一活动中后直接检索它。

于 2013-01-04T08:52:03.530 回答
-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);  

它应该这样工作。

于 2013-01-04T07:57:44.350 回答