在首选项用户界面中,我需要根据某些条件隐藏首选项。
public class MyFragment extends PreferenceFragment {
public void onCreate(Bundle state) {
addPreferencesFromResource(...);
ListPreference myList = (ListPreference) findPreference("myid");
...
if (condition) {
// hide myList
}
}
}
我似乎无法在ListPreference或PreferenceFragment上找到任何方法来将其隐藏在UI中。如果您能指出正确的方向,将不胜感激。
最佳答案
经过大量调试,事实证明这很简单。这是您需要做的:
首先,获取该项目所属的PreferenceCategory。接下来,只需对其调用removePreference。
PreferenceCategory myCategory = (PreferenceCategory) findPreference("myPrefCategory");
myCategory.removePreference(myList);