如何显示和隐藏类别中的偏好?

时间:2015-02-04 11:24:49

标签: android settings show preference

我遇到了问题。在“设置”菜单中,我有一个CheckboxPreference和另一个“首选项”。它们属于同一类别。我想要:当选中复选框时,会出现Preference(位于下方)。当取消选中复选框时,Preference将消失。我不知道最好的方法是什么。所以我试试这样: - 首先关闭所有:找到PreferenceCategory。 - 隐藏首选项:从类别中删除它。 - 要显示首选项:将其添加到类别。

去除后优先立即消失。但是在添加后没有出现。有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

假设您正在使用PreferenceFragment:

首先,您可以通过以下方式在onResume中找到CheckBoxPreference和其他首选项:

CheckBoxPreference cb = (CheckBoxPreference) findPreference('CHECKBOX_PREF_KEY');
OtherPreference otherPref = (OtherPreference) findPreference('OTHER_PREF_KEY');

现在您在OnPreferenceChangeListener上设置cb,然后通过以下方式禁用/启用侦听器中的其他pref:

if (!cb.isChecked()) {
    if (otherPref != null){
        getPreferenceScreen().removePreference(otherPref);
    }
} else {
    if (otherPref == null) {
        otherPref = new OtherPref();
        otherPref.inti...
        getPreferenceScreen().addPreference(otherPref);
    }
}