3

a の値を変更する方法は知っていますが、 aCheckBoxPreferenceに対して機能させることはできませんListPreference

設定画面の作成方法は次のとおりです。

  • 1 つCheckBoxはデフォルト用
  • AListPreferenceでデフォルト以外の色を選択します。

次の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;
        }

    });

これはうまくいくようですが、これを適切に行うかどうかはわかりません。

今、私はデフォルトの色を選択するときに似たようなことをしようとしていますが、リストですべてのチェックを外すか、デフォルトになる色をチェックすることはできません。

何か案が?

4

1 に答える 1

6

の場合CheckBox

デフォルトの色があれば をCheckBox使って修正しandroid:dependencyますが、それがないのでそれしか方法がないと思います。

に関連してListPreference、非常に似ています。

ListPreference lp = (ListPreference)findPreference("listPreference_key");
lp.setValue("");

ドキュメントをチェックして、利用可能な方法を知ることができます。

于 2010-07-19T14:21:08.607 に答える