Activité de préférence de Préférence Écouteur de clics

Je suis la construction d'une Activité de Préférence là où la plupart des préférences dans la liste sera à l'exécution de code et de ne pas modifier un SharedPreference directement. Mon preferences.xml fichier ressemble à ceci.

<PreferenceCategory
    android:title="Connection" >

    <Preference
        android:id="@+id/settings_connectToNewComputer"
        android:key="connectToNewComputer"
        android:summary="Currently connected to:"
        android:title="Connect to new computer" />

    <Preference
        android:id="@+id/removeDevice"
        android:key="removeDevice"
        android:summary="Remove this device from the computer's whitelist"
        android:title="Remove this device from computer" />

</PreferenceCategory>

<PreferenceCategory
    android:title="About" >

    <Preference
        android:id="@+id/settings_About"
        android:key="about"
        android:summary="About me and my thanks to those who made this app great"
        android:title="About Hue Pro" />

    <Preference
        android:id="@+id/contact"
        android:key="contact"
        android:summary="Contact me with comments, bugs, and suggestions for updates"
        android:title="Contact me" />

</PreferenceCategory>

Mon but est d'avoir un bloc de code à exécuter en cas de l'une de ces préférences sont cliqués. Similaire à la fonction "Effacer l'historique des recherches" dans les paramètres Google Play menu préférence. (http://i.imgur.com/qnHbJX9.png)

Personne ne sait comment rendre cela possible?

Je dois ajouter que j'ai essayé d'utiliser findPreference("KeyNameHere"), mais il renvoie toujours null.

Merci!


Edit:

J'ai ajouté ce code et mis en œuvre OnPreferenceClickListener:

@Override
public boolean onPreferenceClick(Preference preference) {
    return false;
}

Mais cette méthode n'est jamais appelé. Est-il une autre façon de le faire?


Edit 2:

J'ai trouvé que si je sors de l'PreferenceCategory balises, donc je suis parti avec cette:

<Preference
    android:id="@+id/settings_connectToNewComputer"
    android:key="connectToNewComputer"
    android:summary="Currently connected to:"
    android:title="Connect to new computer" />

<Preference
    android:id="@+id/removeDevice"
    android:key="removeDevice"
    android:summary="Remove this device from the computer's whitelist"
    android:title="Remove this device from computer" />

<Preference
    android:id="@+id/settings_About"
    android:key="about"
    android:summary="About me and my thanks to those who made this app great"
    android:title="About Hue Pro" />

<Preference
    android:id="@+id/contact"
    android:key="contact"
    android:summary="Contact me with comments, bugs, and suggestions for updates"
    android:title="Contact me" />

et appeler cela:

getPreferenceScreen().setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference preference) {
            return false;
        }
    });

puis-je réellement obtenir une réponse à partir de l'événement de clic. Le seul inconvénient est que je dois supprimer la préférence de regroupement. Quelqu'un sait pourquoi il est et de tout moyen pour résoudre ce problème?