与android相反的是:依赖

时间:2014-07-18 17:39:35

标签: android android-preferences

在Android中如果我想在启用另一个特定的CheckboxPreference时只启用CheckboxPreference,我会这样做:

android:dependency="another_pref"

但是,如果我想进行反向操作怎么办?启用该选项后禁用首选项。我似乎无法找到关于如何做到的任何文档,但我很确定我曾经以某种方式完成它。

由于

1 个答案:

答案 0 :(得分:0)

一种方法是反转主复选框的直觉,然后在选中它时启用另一种。

但是,这不能回答您的问题。为此,您必须在首选项片段/活动的onSharedPreferenceChangedListener中执行以下代码:

CheckBoxPreference masterPreference = (CheckBoxPreference) findPreference(key1);
Preference dependentPreference = findPreference(key2);
dependentPreference.setEnabled(!masterPreference.isChecked());

代码逻辑:此代码采用主优先级的选中状态。如果未选中,则启用从属首选项,反之亦然。