2012-08-22 82 views
0

假設小部件使用登錄名和密碼來檢索某些數據。我在sharedPreferences中存儲登錄名和密碼。小部件的Android偏好設置

一切正常,只要我有1個部件。當我將第二個widget登錄名和pwd添加到sharedPreferences中時,都替換了這兩個小部件。

什麼是這個問題>

回答

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

希望這有助於。