Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Hide a preference in a PreferenceActivity

Is possible to hide a preference in a PreferenceScreen? I don't need to disable it, it must be invisible (sometimes)

Important: I need to keep the min API level 7+

like image 222
Addev Avatar asked Nov 03 '11 08:11

Addev


2 Answers

If your logout button (Preference) is in the PreferenceScreen, do this:

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

Else if your logout button (Preference) is in a PreferenceCategory (which is inside a PreferenceScreen), do this:

PreferenceCategory category = (PreferenceCategory) findPreference("category_name");
Preference logout = findPrefence("logout");
if(category != null && logout != null)
  category.removePreference(logout);

You can put whatever your preferences name is, this is for example for a logout preference, if you have another Preference (eg CheckBoxPreference) you need to cast that specific Preference before findPreference.

like image 179
Carnal Avatar answered Sep 24 '22 18:09

Carnal


Something like that should works:

Preference p = findPreference("your_preference_key");
getPreferenceScreen().removePreference(p);
like image 24
rciovati Avatar answered Sep 22 '22 18:09

rciovati