我根据他们对应用程序的处理方式存储每个用户共享首选项,用户可以拥有多个gmails帐户,并且即时尝试管理每个帐户的共享首选项,问题是我设法将每个帐户的defaultsharedpreferences副本复制到每个帐户中对于我的用户电子邮件偏好,问题是当我对应用程序执行某些操作时用户首选项永远不会更改,但默认首选项确实如此,这是我的代码
sharedPrefsDefault = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
sharedPrefs = getSharedPreferences(sharedPrefsDefault.getString(getString(R.string.str_userMail),"error"), Context.MODE_PRIVATE);
PreferenceManager.setDefaultValues(getApplicationContext(),(sharedPrefsDefault.getString(getString(R.string.str_userMail),"error")), Context.MODE_PRIVATE, R.xml.preferences, false);
我正在onCreate中将defaultPrefs
存储到我的sharedPrefs
(用户)
答案 0 :(得分:1)
我不是百%确定您计划实现的目标,而是创建自己的SharedPreferences类。这样的事情。
public class UserPreferences{
SharedPreferences.Editor editor;
SharedPreferences sharedPreferences;
public UserPrefs(String userName, Context context) {
this.context = context;
sharedPreferences = context.getSharedPreferences(userName, 0);
editor = sharedPreferences.edit();
}
public String getUserMail(){
return sharedPreferences.getString("userMail","abc@def.gh");
}
public String setUserMail(String s){
editor.putString("userMail",s);
editor.apply();
}
}