私は、設定画面を持つAndroidアプリを持っています。その画面の唯一の設定は、4つのオプションを持つMultiSelectListPreferenceです。私はonPreferenceChange
メソッドを実装して、オプションが変更されるたびに環境設定の要約を更新しようとしています。onPreferenceChangeメソッドの奇妙な値
これを行うには、newValue
オブジェクトをHashSet of Stringsにキャストしていますが、HashSetの内容をログアウトすると、ユーザーが選択した値と一致しません。
これは私のコードです:
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (preference instanceof MultiSelectListPreference) {
MultiSelectListPreference pref = (MultiSelectListPreference) preference;
HashSet<String> values = (HashSet<String>) newValue;
Log.e("SettingsActivity", values.toString());
}
return true;
}
そして、ここで私はすべての4つのオプションを選択したときにプリントアウトログメッセージさ:
07-28 13:13:00.896 31196-31196/com.example.android.theguardiannews E/SettingsActivity:
[ film , environment, business , environment , politics, business]
編集:はここにすべてのイメージがあります可能なオプション:
すべてのリストposibilitysのプリントを好む基本的な画面。 –
@BrunoFerreiraあなたが求めたイメージで私の質問を編集しました。 –