118 votes

Android préférences de l'événement onclick

Dans mon preferences.xml j'ai une préférence élément comme ceci:

<Preference android:title="About" />

Je veux attribuer onClick événement, de sorte que si l'utilisateur clique sur elle, je serais capable d'ouvrir de nouveaux Intent ou navigateur. J'ai essayé de faire comme je le fais avec des boutons, mais cela ne semble pas fonctionner.

245voto

William Tate Points 16777

Badr,

Vous devez configurer android:key pour l'élément, Puis dans votre code, vous pouvez le faire...

En supposant que vous utilisez la ligne suivante dans votre fichier XML:

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

Ensuite, vous pouvez effectuer les opérations suivantes dans votre code:

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

60voto

jason gilbert Points 219

pour le lancement d'un site web:

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

pour lancer une activité spécifique:

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

vous pouvez également utiliser "android:mimetype" pour définir le type mime.

12voto

Pentium10 Points 68884

Vous avez besoin d'utiliser onPreferenceTreeClick événement.

Voir, par exemple, http://www.netmite.com/android/mydroid/donut/packages/apps/Phone/src/com/android/phone/CdmaOptions.java

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X