具有相互依赖条目的Android首选项屏幕

时间:2011-09-07 10:22:08

标签: android android-preferences

我有一个Android偏好设置屏幕,其中一些首选项是相互依赖的。

换句话说,如果其中一个首选项设置为某个值,那么其他两个首选项可用。 如果没有,那么它们不是因为它们毫无意义。

具体来说,我有一个包含3个可能值的选项:提示,是和否。 当值设置为“否”时,我想锁定其他2个选项。

如何在Android 2.1中执行此操作?

1 个答案:

答案 0 :(得分:1)

基本上只需要在OnPreferenceChangeListener中为3-way首选项启用/禁用首选项上的setEnabled()。 e.g:

otherPrefOne = (ListPreference)findPreference("OTHER_PREF_1");
otherPrefTwo = (ListPreference)findPreference("OTHER_PREF_2");

ThreeWayPref = (ListPreference)findPreference("3WAY_PREF");
ThreeWayPref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
    public boolean onPreferenceChange(Preference preference, Object newValue) {
        if (((String)newValue).equals("No")) {
            otherPrefOne.setEnabled(false);
            otherPrefTwo.setEnabled(false);
        } else {
            otherPrefOne.setEnabled(true);
            otherPrefTwo.setEnabled(true);
        }
        return true;
    }
});