Настройки Android onclick

В моем preferences.xml у меня есть элемент предпочтения, подобный этому:

<Preference android:title="About" /> 

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

Solutions Collecting From Web of "Настройки Android onclick"

Бадр,

Вам нужно установить android:key для элемента, затем в вашем коде вы можете сделать …

Предполагая, что вы используете следующее в своем XML:

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

Затем вы можете сделать следующее в своем коде:

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

Для запуска веб-сайта:

 <PreferenceScreen android:title="website"> <intent android:action="android.intent.action.VIEW" android:data="http://www.example.com" /> </PreferenceScreen> 

Для запуска определенной деятельности:

 <PreferenceScreen android:title="something"> <intent android:action="android.intent.action.MAIN" android:targetPackage="com.example.foo" android:targetClass="com.example.foo.SomeActivity" /> </PreferenceScreen> 

Вы также можете использовать «android: mimetype» для установки типа mimetype.

Вам нужно использовать событие onPreferenceTreeClick.

Например, см. http://www.netmite.com/android/mydroid/donut/packages/apps/Phone/src/com/android/phone/CdmaOptions.java

Ответ на ответ @jason gilbert

Я нахожусь в targetSdkVersion 25 , и его ответ не сработал, мне пришлось обернуть тег намерения с помощью тега Preference. Пример:

 <PreferenceScreen android:title="something"> <Preference title="Title"> <intent android:action="android.intent.action.MAIN" android:targetPackage="com.example.foo" android:targetClass="com.example.foo.SomeActivity" /> </Preference> </PreferenceScreen>