質問

CheckBoxPreferenceの値を変更する方法を知っていますが、ListPreferenceのために機能することはできません。

これは私の優先画面がどのように構築されているかです。

  • デフォルト
  • の1つのCheckBox
  • 既定以外の色を選択するためのListPreference

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 を確認する方法が利用可能です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top