在PreferenceActivity中隐藏一个偏好设置

6

是否可以在PreferenceScreen中隐藏偏好设置?我不需要禁用它,它必须是不可见的(有时候)

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

5个回答

19

如果你的注销按钮(Preference)在PreferenceScreen中,那么请按照以下步骤操作:

PreferenceScreen screen = getPreferenceScreen();
Preference logout = findPreference("logout");
if(screen != null && logout != null)
  screen.removePreference(logout);

如果您的注销按钮(“首选项”)位于PreferenceCategory中(PreferenceCategory是PreferenceScreen内部的一个元素),请执行以下操作:

PreferenceCategory category = (PreferenceCategory) findPreference("category_name");
Preference logout = findPrefence("logout");
if(category != null && logout != null)
  category.removePreference(logout);
你可以放置任何你喜欢的偏好设置名称,例如注销偏好设置,如果你有另一个偏好设置(例如CheckBoxPreference),你需要在findPreference之前先将该特定的偏好设置转换为它的类型。

4

类似这样的代码应该可以正常运行:

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

1

PreferenceScreen scr = getPreferenceScreen();

如果scr不为null:

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

0

0
如果您使用支持库v7 Preference,您可以使用setVisible方法。它恰好可以满足您的需求。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接