0
假設小部件使用登錄名和密碼來檢索某些數據。我在sharedPreferences中存儲登錄名和密碼。小部件的Android偏好設置
一切正常,只要我有1個部件。當我將第二個widget登錄名和pwd添加到sharedPreferences中時,都替換了這兩個小部件。
什麼是這個問題>
假設小部件使用登錄名和密碼來檢索某些數據。我在sharedPreferences中存儲登錄名和密碼。小部件的Android偏好設置
一切正常,只要我有1個部件。當我將第二個widget登錄名和pwd添加到sharedPreferences中時,都替換了這兩個小部件。
什麼是這個問題>
在通常情況下,典型的解決方案,對於一個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, "");
}
希望這有助於。