Скрыть предпочтение в PreferenceActivity - PullRequest
6 голосов
/ 03 ноября 2011

Можно ли скрыть предпочтение в PreferenceScreen?Мне не нужно его отключать, оно должно быть невидимым (иногда)

Важно: мне нужно сохранить минимальный уровень API 7 +

Ответы [ 5 ]

18 голосов
/ 03 ноября 2011

Если ваша кнопка выхода (Preference) находится на PreferenceScreen, сделайте следующее:

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

Иначе, если ваша кнопка выхода (Preference) находится в PreferenceCategory (которая находится внутри PreferenceScreen), сделайте следующее:

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

Вы можете указать любое имя вашего предпочтения, например, для выхода из системы, если у вас есть другое предпочтение (например, CheckBoxPreference), вам нужно привести это конкретное предпочтение перед findPreference.

4 голосов
/ 03 ноября 2011

Что-то подобное должно работать:

Preference p = findPreference("your_preference_key");
getPreferenceScreen().removePreference(p);
1 голос
/ 24 декабря 2013

PreferenceScreen scr = getPreferenceScreen ();

если (экр! = NULL)

     scr.removePreference(findPreference("preferenceKey"));
0 голосов
/ 12 января 2019

Теперь вы можете сделать это прямо в XML с помощью библиотеки AppCompat.

См. https://stackoverflow.com/a/54154665/114549

0 голосов
/ 12 июля 2018

Если вы используете библиотеку поддержки v7 Предпочтение , вы можете использовать метод setVisible.Он делает именно то, что вам нужно.

...