我遇到了问题。在“设置”菜单中,我有一个CheckboxPreference和另一个“首选项”。它们属于同一类别。我想要:当选中复选框时,会出现Preference(位于下方)。当取消选中复选框时,Preference将消失。我不知道最好的方法是什么。所以我试试这样: - 首先关闭所有:找到PreferenceCategory。 - 隐藏首选项:从类别中删除它。 - 要显示首选项:将其添加到类别。
去除后优先立即消失。但是在添加后没有出现。有人能帮助我吗?
答案 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);
}
}