我正在尝试将SharedPreference中的用户ID存储在一个活动中,并希望在任何活动中获取此整数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而不是userId。如果我使用以下行来获取整数值,那么它将显示运行时异常。
int userId = myPrefs.getInt("userId", Integer(null));
我不明白我的代码中有什么问题。如何在我的另一个活动中获取此整数userId 请给我任何参考或提示 提前谢谢。
答案 0 :(得分:0)
您的代码没有任何问题,我测试了这个确切的案例并且它运行良好。您可以使用默认值 -1 。
您是否在同一个应用程序中同时拥有这两项活动?
我建议的调试是确保您的应用程序按照您期望的顺序运行并且值正确存储。您可以尝试在将其存储在同一活动中后直接检索它。
答案 1 :(得分:-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);
它应该那样工作。