根据其依赖关系的值禁用首选项(代码检查)

问题描述 投票:0回答:1

我试图做一些我不确定的事情,需要有人提供反馈。

我有2个偏好。其中之一,我想依赖于另一个人的价值。

示例:我的“通知模式”首选项有2个选项:“计时器”和“提醒”

如果用户选择“计时器”选项,我希望我的其他首选项可用于设置时间。

否则,我想要Preference来设置Timer被禁用。

这是我在pref更改的监听器中提出的内容:

if (key.equals(PREF_NOTIFICATION_MODE)) {

    Preference notifModePref = findPreference(key);
    notifModePref.setSummary(sharedPreferences.getString(key, ""));

    if(!notifModePref.equals("Timer Mode")) {

        Preference timerDurationPref = findPreference(PREF_TIMER_DURATION);
        timerDurationPref.onDependencyChanged(notifModePref, true);

    } else if(notifModePref.equals("Timer Mode")) {

        Preference timerDurationPref = findPreference(PREF_TIMER_DURATION);
        timerDurationPref.onDependencyChanged(notifModePref, false);
    }
}

我不确定我是否正确地这样做,或者如果onDependencyChanged是正确的。

android sharedpreferences android-preferences
1个回答
0
投票

我通过引用if(key.equals)并使用Preference语句和使用if的组合,并根据需要设置onDependencyChanged(),完成了.isEnabled(boolean)内部的目标。

© www.soinside.com 2019 - 2024. All rights reserved.