Настройки Android onclick

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

<Preference android:title="About" />

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

Ответ 1

Бадр,

Вам нужно установить 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
                 return true;
             }
         });

Ответ 2

запустить веб-сайт:

<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.

Ответ 4

Ответ на ответ @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>