Из вызова PreferenceActivity
Preference somePreference = findPreference(SOME_PREFERENCE_KEY);
PreferenceScreen preferenceScreen = getPreferenceScreen();
preferenceScreen.removePreference(somePreference);
вы можете позже позвонить:
preferenceScreen.addPreference(somePreference);
Единственная сложная часть - получить правильный порядок при добавлении обратно. Посмотрите на PreferenceScreen документация, в частности ее базовый класс, PreferenceGroup для деталей.
Примечание: Вышеуказанное будет работать только для непосредственных потомков PreferenceScreen
,Если между ними стоит PreferenceCategory
, вам нужно удалить предпочтение из родительского элемента PreferenceCategory
, а не PreferenceScreen
.Сначала убедитесь, что PreferenceCategory
имеет атрибут android:key
, установленный в файле XML.Тогда:
Preference somePreference = findPreference(SOME_PREFERENCE_KEY);
PreferenceCategory preferenceCategory = (PreferenceCategory) findPreference(SOME_PREFERENCE_CATEGORY_KEY);
preferenceCategory.removePreference(somePreference);
и:
preferenceCategory.addPreference(somePreference);