在PreferenceActivity中隐藏首选项

时间:2011-11-03 08:19:52

标签: java android sharedpreferences android-preferences

是否可以在PreferenceScreen中隐藏首选项?我不需要禁用它,它必须是不可见的(有时)

重要提示:我需要保持最低API级别7 +

5 个答案:

答案 0 :(得分:18)

如果您的注销按钮(首选项)位于首选项屏幕中,请执行以下操作:

PreferenceScreen screen = getPreferenceScreen();
Preference logout = findPreference("logout");
screen.removePreference(logout);

否则,如果您的注销按钮(首选项)位于PreferenceCategory(位于PreferenceScreen内),请执行以下操作:

PreferenceCategory category = (PreferenceCategory) findPreference("category_name");
Preference logout = findPrefence("logout");
category.removePreference(logout);

您可以输入您的首选项名称,例如注销首选项,如果您有其他首选项(例如CheckBoxPreference),则需要在findPreference之前投射该特定首选项。

答案 1 :(得分:4)

这样的事情应该有效:

Preference p = findPreference("your_preference_key");
getPreferenceScreen().removePreference(p);

答案 2 :(得分:1)

PreferenceScreen scr = getPreferenceScreen();

如果(SCR!= NULL)

     scr.removePreference(findPreference("preferenceKey"));

答案 3 :(得分:0)

如果您使用支持库v7 Preference,则可以使用setVisible方法。它完全满足您的需求。

答案 4 :(得分:0)

您现在可以使用AppCompat库直接在xml中执行此操作。

请参见https://stackoverflow.com/a/54154665/114549