Я знаю, как изменить значение CheckBoxPreference
, но я не могу заставить его работать для ListPreference
.Как отредактировать значение ListPreference из java-кода в Android
Вот как устроен мой экран предпочтения:
- один
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;
}
});
И это похоже на работу , хотя я не уверен в этом.
Теперь я пытаюсь сделать что-то подобное, когда я выбираю цвет по умолчанию, но я не могу получить список, чтобы либо снять отметку со всего ИЛИ проверить цвет, который был бы по умолчанию.
Любая идея?
Насколько я теперь ListPreference работает как строковое значение. – Pentium10