ウィジェットがログインとパスワードを使用してデータを取得するとします。login と pws を sharedPreferences に保存します。
ウィジェットが 1 つある限り、すべて正常に動作します。2 番目のウィジェット login と pwd を sharedPreferences に追加すると、両方のウィジェットが置き換えられます。
この問題の典型的な解決策は何ですか>
ウィジェットがログインとパスワードを使用してデータを取得するとします。login と pws を sharedPreferences に保存します。
ウィジェットが 1 つある限り、すべて正常に動作します。2 番目のウィジェット login と pwd を sharedPreferences に追加すると、両方のウィジェットが置き換えられます。
この問題の典型的な解決策は何ですか>
通常、AppWidget の一意の識別子は appWidgetId です。したがって、この方法で好みを整理できます。
ログインを保存するためのキーがあるとします。
public static final String PREFS_LOGIN = "com.example.prefs.LOGIN";
そして、値を保存して取得する 2 つの方法:
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, "");
}
お役に立てれば。