是否可以在PreferenceScreen中隐藏首选项?我不需要禁用它,它必须是不可见的(有时)
重要提示:我需要保持最低API级别7 +
答案 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中执行此操作。