Нерекомендуемый findPreference ()Метод? -Андроид

Я хочу определить, когда щелкнули Preference, содержащуюся в ListView, чтобы я мог запустить намерение для управления этим выбором.

Я бы сделал так в моем макете XMLфайл:

<Preference android:title="About" android:key="myKey"></Preference>

И следующее в моем коде java:

Preference myPref = (Preference) findPreference("myKey");
myPref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
             public boolean onPreferenceClick(Preference preference) {
                 //open browser or intent here
             }
         });

Но методpublic Preference findPreference (CharSequence key)не рекомендуется.

  1. Есть ли не устаревший эквивалент?
  2. Если нет, то что, если я все равно его использую?
  3. Как Fragmentsпомочь мне лучше выполнять мою задачу? Проверьте здесь:Настройки без устаревших методов .

Здесь вы можете проверить структуру макета XML, которую имеет моя активность, и снимок приложения :

. XML:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

    <Preference 
        android:key="about" 
        android:title="@string/titleAbout" 
        android:summary="@string/summaryAbout" 
    />

    <Preference 
        android:key="labelTaxonomy" 
        android:title="@string/titleLabelTaxonomy" 
        android:summary="@string/summaryLabelTaxonomy" 
    />

</PreferenceScreen>

СНИМОК:

snapshopt

После нажатия на «О программе» (или «Доступ к таксономии меток»)Preference, я хотел бы открыть intentкакой-то (также может быть видео или что-то еще... названия вводят в заблуждение ).

42
задан Community 23 May 2017 в 11:54
поделиться