我在SharedPreferencesand中注册时存储userId。现在我想访问SharedPreferences存储的UserId值。直到现在我尝试了这段代码:
prefrence = PreferenceManager.getDefaultSharedPreferences(this);
edit3 = prefrence.edit();
edit3.putInt("user_id", userid);
Log.e("Commit", "SharedPreferences");
edit3.commit();
在接下来的活动中,我使用它进行访问:
prefr = PreferenceManager.getDefaultSharedPreferences(this);
value = prefr.getInt("user_id", "");
我该怎么做?
答案 0 :(得分:4)
你在INT中输入并获得一个STRING ......也许这会导致类型转换错误。
我看到你改变了你的代码,得到一个int ......错误的方式!
您这样做:
value = prefr.getInt("user_id", "");
相反,你应该这样做:
value = prefr.getInt("user_id", 0);
(你不能将“”分配给一个int。)
如果user_id是int ,则上述有效。 如果user_id是一个字符串,那么你应该做一个putString和一个getString。像:
edit3.putString("user_id", userid);
然后
value = prefr.getString("user_id", "");
因此,您授予必要的类型一致性。
答案 1 :(得分:2)
尝试更改
prefr.getString("user_id", "");
到
prefr.getInt("user_id", 0);