Android 如何在SharedReferences中获取值存储

Android 如何在SharedReferences中获取值存储,android,listview,android-intent,Android,Listview,Android Intent,我正在SharedReferencesand中存储注册时的用户ID。现在我想访问SharedReferences存储的UserId值。到目前为止,我尝试了以下代码: prefrence = PreferenceManager.getDefaultSharedPreferences(this); edit3 = prefrence.edit(); edit3.putInt("user_id", userid); Log.e("Commit", "SharedPreferences"); edit3

我正在SharedReferencesand中存储注册时的用户ID。现在我想访问SharedReferences存储的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", "");

我该怎么做呢?

你输入一个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", "");
因此,您可以授予必要的类型一致性。

尝试更改

prefr.getString("user_id", "");


您遇到了什么错误?请注意,应该使用Log.e来记录错误,而不是像提交首选项值这样的一般调试消息。您最好使用Log.d来代替。@keaukraine yeh..但我个人喜欢Log.e,因为它以红色显示消息。请查看此[ans][1]。希望这能对你有所帮助。[1] :谢谢我得到了解决方案和解决方案是的,prefr.getIntuser\u id不应该编译。没有这样的重载getInt方法。
prefr.getInt("user_id", 0);