我有两个类,一个是loggedIn,另一个是User类。在loggedIn类中,我想显示用户登录时创建的共享首选项。
loginPrefs = getSharedPreferences("loginpreferences",Context.MODE_PRIVATE);
SharedPreferences.Editor loginEditor = loginPrefs.edit();
loginEditor.putString("userID", userIDCrypt);
loginEditor.commit();
现在我想在用户类中创建一个getID()方法,我可以使用User.getID();从每个类调用该方法。我怎么能这样做?
我需要多个类中的userID,所以我想要一个给我用户ID的活动(例如叫做getID)。
答案 0 :(得分:1)
这样做为共享偏好设定一个课程
public class Session {
private SharedPreferences prefs;
public Session(Context cntx) {
// TODO Auto-generated constructor stub
prefs = PreferenceManager.getDefaultSharedPreferences(cntx);
}
public void setusename(String usename) {
prefs.edit().putString("usename", usename).commit();
prefsCommit();
}
public String getusename() {
String usename = prefs.getString("usename","");
return usename;
}
}
现在在制作这个课程之后你想要像这样使用这个用法 使对象og这个类像
private Session session;//global variable
session = new Session(cntx); //in oncreate
现在我们设置了共享首选项,然后像
一样使用它session.setusename("USERNAME");
现在,当你想要获得用户名时,会话对象的工作相同,并调用此
session.getusename();
祝你好运:)密码相同
答案 1 :(得分:1)
在一个活动中试试这个:
SharedPreferences sp;
SharedPreferences.Editor edit;
sp = getSharedPreferences("enter", MODE_PRIVATE);
edit = sp.edit();
edit.putString("name", username);
edit.putString("pwd", password);
edit.commit();
在下一个活动中:
SharedPreferences sp = getSharedPreferences("enter", MODE_PRIVATE);
sp.getString("name", "default value"));
sp.getString("pwd", "default value"));
答案 2 :(得分:0)
很抱歉,如果有任何语法或编译问题,只需输入我的头脑,并可能会犯一些错误。所以从本质上讲,这是一种可以用来从一个简单的类中公开你的prefs并从任何地方访问它的方法。
public class MySharedPrefs {
public SharedPreferences sp;
public MySharedPrefs()
{
this.sp = c.getSharedPreferences("prefs", Context.MODE_PRIVATE);
}
public static String getStringFieldValue(Context c, String fieldName)
{
MySharedPrefs p = new MySharedPrefs(c);
return p.sp.getString(fieldName, "default value");
}
public static void setStringValue(Context c, String fieldName, String value)
{
MySharedPrefs p = new MySharedPrefs(c);
SharedPreferences.Editor edit;
edit = p.sp.edit();
edit.putString(fieldName, value);
edit.commit();
}
}
然后在您的活动中使用它:
MySharedPrefs.getStringFieldValue(this, "name");
您也可以扩展此类并添加其他辅助方法,例如getUserName
等。
更新:
当从另一个静态类调用它时,该类需要引用应用程序上下文,然后需要将该上下文提供给此函数而不是使用它。
MySharedPrefs.getStringFieldValue(context, "name"); //if your other static class has a property called context that contains your applications context