假设,widget使用登录名和密码来检索一些数据。我将登录和pws存储在sharedPreferences中。
只要我有1个小部件,一切正常。当我添加第二个小部件登录和pwd在sharedPreferences替换为两个小部件。
此问题的典型解决方案是什么>
答案 0 :(得分:1)
在通常情况下,AppWidget的唯一标识符是appWidgetId。所以你可以用这种方式组织你的偏好。
假设您有一个用于存储登录的密钥:
public static final String PREFS_LOGIN = "com.example.prefs.LOGIN";
两种存储值并检索它的方法:
public void setLogin(String login) {
prefs.edit().putString(PREFS_LOGIN, login).commit();
}
public String getLogin() {
return prefs.getString(PREFS_LOGIN, "");
}
要确保首选项存储每个appWidgetId的登录值并检索正确的登录值,您可以将appWidgetId传递给这些方法:
public void setLogin(String login, int appWidgetId) {
prefs.edit().putString(PREFS_LOGIN + appWidgetId, login).commit();
}
public String getLogin(int appWidgetId) {
return prefs.getString(PREFS_LOGIN + appWidgetId, "");
}
希望这有帮助。