我需要以编程方式删除PreferenceCategory。我可以使用以下代码删除各个首选项,但是我也需要删除(禁用)整个PreferenceCategory。

PreferenceScreen preferenceScreen = getPreferenceScreen();
EditTextPreference etp = (EditTextPreference) preferenceScreen.findPreference("pref22");
((PreferenceGroup) findPreference("prefcat")).removePreference(etp);

编辑:这是PreferenceCategory“prefcat”和子首选项“pref22”的工作代码:
PreferenceScreen preferenceScreen = getPreferenceScreen();
EditTextPreference etp = (EditTextPreference) preferenceScreen.findPreference("pref22");

PreferenceGroup preferenceGroup = (PreferenceGroup) findPreference("prefcat");
if (preferenceGroup != null) {
    preferenceGroup.removePreference(etp);
    preferenceScreen.removePreference(preferenceGroup);
}

最佳答案

首先不要加载PreferenceCategory

如果要使用Java定义首选项,请不要创建PreferenceCategory

如果要使用XML定义首选项,请使用三个XML文件:

  • 这个魔法类别之前的东西
  • 神奇类别
  • 中的一个
  • 这个神奇类别之后的东西

  • 在需要分类的情况下,加载所有三个XML文件。在不需要分类的情况下,仅加载第一个和第三个XML文件。

    关于android - 如何以编程方式删除PreferenceCategory?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5605520/

    10-10 00:55