AndroidのJavaコードからListPreference値を編集する方法
-
17-09-2020 - |
質問
CheckBoxPreference
の値を変更する方法を知っていますが、ListPreference
のために機能することはできません。
これは私の優先画面がどのように構築されているかです。
- デフォルト の1つの
- 既定以外の色を選択するための
ListPreference
CheckBox
ListPreference
は、次のようにキー "TitleColor"で定義されています。
CharSequence[] entries = { "Dark grey", "Light grey", "Light red", "Red" };
CharSequence[] entryValues = { "#4c4c4c", "#b5b5b5", "#ab6a68", "#962622" };
final ListPreference color = (ListPreference) findPreference("titleColor");
color.setEntries(entries);
color.setEntryValues(entryValues);
.
今、私がカラーを選択したとき、これを行う:
color.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference, Object newValue) {
System.out.println("In the onClick method");
System.out.println("change title color");
Editor editor2 = defaultColor.getEditor();
editor2.putBoolean("defaultColor", false);
editor2.commit();
return true;
}
});
.
とこれはうまくいくようですが、きちんとしてはいけません。
今すぐ私はデフォルトの色を選択したときに似たことをやろうとしていましたが、リストがすべてのチェックを外したり、デフォルトになる色を確認したりすることはできません。
任意のアイデア?
解決
CheckBox
の場合:
デフォルトの色CheckBox
が発生した場合、android:dependency
を使用して固定されますが、それを持っていないので、それが唯一の方法であると思います。
ListPreference
に関連して、非常に似ています:
ListPreference lp = (ListPreference)findPreference("listPreference_key");
lp.setValue("");
.
docs を確認する方法が利用可能です。
所属していません StackOverflow