0

ウィジェットがログインとパスワードを使用してデータを取得するとします。login と pws を sharedPreferences に保存します。

ウィジェットが 1 つある限り、すべて正常に動作します。2 番目のウィジェット login と pwd を sharedPreferences に追加すると、両方のウィジェットが置き換えられます。

この問題の典型的な解決策は何ですか>

4

1 に答える 1

1

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

お役に立てれば。

于 2012-08-22T13:13:41.123 に答える