【发布时间】:2011-11-03 08:19:51
【问题描述】:
是否可以在 PreferenceScreen 中隐藏首选项?我不需要禁用它,它必须是不可见的(有时)
重要提示:我需要保持最低 API 级别 7+
【问题讨论】:
标签: java android sharedpreferences android-preferences
是否可以在 PreferenceScreen 中隐藏首选项?我不需要禁用它,它必须是不可见的(有时)
重要提示:我需要保持最低 API 级别 7+
【问题讨论】:
标签: java android sharedpreferences android-preferences
如果您的注销按钮(首选项)在 PreferenceScreen 中,请执行以下操作:
PreferenceScreen screen = getPreferenceScreen();
Preference logout = findPreference("logout");
if(screen != null && logout != null)
screen.removePreference(logout);
否则,如果您的注销按钮 (Preference) 位于 PreferenceCategory 中(位于 PreferenceScreen 内),请执行以下操作:
PreferenceCategory category = (PreferenceCategory) findPreference("category_name");
Preference logout = findPrefence("logout");
if(category != null && logout != null)
category.removePreference(logout);
您可以输入任何您的首选项名称,例如用于注销首选项,如果您有另一个首选项(例如 CheckBoxPreference),则需要在 findPreference 之前转换该特定首选项。
【讨论】:
类似的东西应该可以工作:
Preference p = findPreference("your_preference_key");
getPreferenceScreen().removePreference(p);
【讨论】:
PreferenceScreen scr = getPreferenceScreen();
如果(scr!=null)
scr.removePreference(findPreference("preferenceKey"));
【讨论】:
如果您使用支持库 v7 Preference,则可以使用 setVisible 方法。它完全满足您的需求。
【讨论】:
您现在可以使用 AppCompat 库直接在 xml 中执行此操作。
【讨论】: