如何在Android中编辑java代码中的ListPreference值

时间:2010-07-19 12:58:48

标签: android listpreference

我知道如何更改CheckBoxPreference的值,但我无法让它适用于ListPreference

以下是我的偏好设置屏幕的构建方式:

  • 默认
  • 一个CheckBox
  • ListPreference选择默认颜色以外的颜色。

使用键“titleColor”定义ListPreference,如下所示:

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

    });

这似乎有效,但我不确定这是否正确。

现在,当我选择默认颜色时,我一直在尝试做类似的事情,但我无法取消列表取消检查所有内容或检查默认颜色。

有什么想法吗?

1 个答案:

答案 0 :(得分:5)

如果是CheckBox

如果你有一个默认颜色CheckBox,它将使用android:dependency修复,但由于你没有它,我想这是唯一的方法。

ListPreference相关,非常相似:

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

您可以查看docs以了解可用的方法。