在Android中如果我想在启用另一个特定的CheckboxPreference时只启用CheckboxPreference,我会这样做:
android:dependency="another_pref"
但是,如果我想进行反向操作怎么办?启用该选项后禁用首选项。我似乎无法找到关于如何做到的任何文档,但我很确定我曾经以某种方式完成它。
由于
答案 0 :(得分:0)
一种方法是反转主复选框的直觉,然后在选中它时启用另一种。
但是,这不能回答您的问题。为此,您必须在首选项片段/活动的onSharedPreferenceChangedListener中执行以下代码:
CheckBoxPreference masterPreference = (CheckBoxPreference) findPreference(key1);
Preference dependentPreference = findPreference(key2);
dependentPreference.setEnabled(!masterPreference.isChecked());
代码逻辑:此代码采用主优先级的选中状态。如果未选中,则启用从属首选项,反之亦然。