在首选项用户界面中,我需要根据某些条件隐藏首选项。

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);

10-08 09:32