有没有办法动态显示和隐藏偏好?就我而言,我有一个复选框首选项,它将禁用或启用 2 个首选项组(“with-”和“without-handicap”组)之一。虽然这将是桌面环境中的理想 GUI,但“有障碍”几乎占据了整个屏幕,而另一个“无障碍”只占据了屏幕的一小部分。
我不想同时显示两个组,而是一次只显示其中一个,并在复选框更改时动态显示或隐藏这两个组。有没有办法做到这一点?
最佳答案
来自 PreferenceActivity 调用
Preference somePreference = findPreference(SOME_PREFERENCE_KEY);
PreferenceScreen preferenceScreen = getPreferenceScreen();
preferenceScreen.removePreference(somePreference);
您可以稍后调用:
preferenceScreen.addPreference(somePreference);
唯一有点棘手的部分是在重新添加时使顺序正确。查看 PreferenceScreen文档,尤其是它的基类,PreferenceGroup了解详情。
注意:以上内容仅适用于 PreferenceScreen
的直接子项。如果中间有 PreferenceCategory
,则需要从其父 PreferenceCategory
中删除首选项,而不是 PreferenceScreen
。首先确保 PreferenceCategory
在 XML 文件中设置了 android:key
属性。那么:
Preference somePreference = findPreference(SOME_PREFERENCE_KEY);
PreferenceCategory preferenceCategory = (PreferenceCategory) findPreference(SOME_PREFERENCE_CATEGORY_KEY);
preferenceCategory.removePreference(somePreference);
和:
preferenceCategory.addPreference(somePreference);
关于android - 如何在 Android 上动态显示和隐藏首选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4703535/