Intereting Posts
Можем ли мы найти пользователя по номеру телефона пользователя в Android? Звуковые эффекты при нажатии кнопки Как развить расширенный LinearLayout из XML Разбор больших XML-файлов с использованием анализатора SAX (пропустите некоторые строки / теги) Ошибка: выполнение выполнено для задачи ': app: transformClassesWithDexForDebug' Как отправить данные от Arduino-uno с помощью модуля Bluetooth HC-05 и прочитать его на Android? Как сохранить и получить массив байтов (данные изображения) в базу данных SQLite и из нее? Перетаскивание в android 3.x вызывает незаконное появлениеStateException после небольшого числа при перетаскивании Разрешения Android 6.0 и установка OBB Android – настройка виджета Spinner Look and Feel Cordova Android 6.4.0 создает резервную папку верхнего уровня, а не внутри платформы Android FFmpeg – не удается найти ExecuteBinaryResponseHandler – Android / Java Как сделать число недоступным (похоже на блокировщик вызовов)? Кнопка в списке ListView не отображается в android Как изменить маркер для наложения на кран для Android?

Android получает представление о предпочтении в PreferenceActivity

Я хотел бы получить экземпляр View, который используется для отображения определенного Preference в моей PreferenceActivity, поэтому я могу изменить его свойства, например:

public class SettingsActivity extends PreferenceActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preference); Preference pref = findPreference("key"); pref.getView().setVisibility(View.GONE); //not necessarily setVisibility, i hope you get my point } } 

Я нашел этот метод только: getView (View convertView, родительская группа ViewGroup) . Но мне кажется сбивающим с толку, что, если я хочу получить представление о моих предпочтениях, мне нужно предоставить view и viewGroup в качестве параметров?

Может кто-нибудь объяснить, как использовать этот метод, или указать мне другой метод, чтобы получить представление из моего экземпляра Preference.

PS: если возможно, я предпочел бы НЕ расширять класс предпочтений, но я не возражаю, если это необходимо

Solutions Collecting From Web of "Android получает представление о предпочтении в PreferenceActivity"

Я не уверен, как получить представление для предпочтения, но если вы хотите удалить представление с экрана (установите видимость на View.gone), вы можете использовать следующее:

getPreferenceScreen (). removePreference (thePreference)

PreferenceActivity наследует класс ListActivity . ListActivity имеет метод getListView() который возвращает ListView, который отображает ваши предпочтения.

EDIT: Вот код в моем комментарии отформатирован:

 getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() { // ... put listener code here }); 

Чтобы получить представление о желаемом предпочтении, вы можете использовать это:

 @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); Preference preference=findPreference(“preferenceKey”); View preferenceView=getListView().getChildAt(preference.getOrder()); //Do your stuff } 

Примечание. Вы не можете сделать это в методе onCreate потому что это вызовет onCreate NullPointerException .