我们如何根据ListPreference中的数组选择禁用CheckBox首选项?

我所拥有的是,如果选择了自动模式或手动模式,我不希望启用控制加速度计轴反转的复选框。如何实时进行?谢谢你的提示。

杰森

<?xml version="1.0" encoding="UTF-8"?>
<resources>

<string-array name="game_mode_text">
        <item>Auto Mode</item>
        <item>Manual Mode</item>
        <item>Accelerometer Mode</item>
    </string-array>
    <string-array name="game_mode_values">
        <item>0</item>
        <item>1</item>
        <item>2</item>
    </string-array>
</resources>





 @Override
    public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
            final Preference preference) {
            ListPreference accelMode = (ListPreference) findPreference("ModeKey");
            CheckBoxPreference checkBoxPreference = (CheckBoxPreference)findPreference("invertAccelKey");
        if(preference.equals(accelMode)) {
            String value = preference.getSharedPreferences().getString("ModeKey", "0");

            if(value.equalsIgnoreCase("0") || value.equalsIgnoreCase("1")) {
                checkBoxPreference.setEnabled(false);
            }else
                checkBoxPreference.setEnabled(true);
        }
        return true;
    }

最佳答案

我认为实现此目标的唯一方法是为Preference.OnPreferenceChangeListener设置ListPreference并根据所选值更改CheckBoxPreference的状态。

07-28 01:46
查看更多