小部件的Android首选项

时间:2012-08-22 13:05:24

标签: android android-widget

假设,widget使用登录名和密码来检索一些数据。我将登录和pws存储在sharedPreferences中。

只要我有1个小部件,一切正常。当我添加第二个小部件登录和pwd在sharedPreferences替换为两个小部件。

此问题的典型解决方案是什么>

1 个答案:

答案 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, "");
}

希望这有帮助。