Dans mon preferences.xml, j'ai un élément de préférence comme celui-ci:
<Preference android:title="About" />
Je veux attribuer un onClick
événement, donc si l'utilisateur clique dessus, je pourrai ouvrir un nouveau Intent
navigateur ou un nouveau navigateur. J'ai essayé de le faire comme je le fais avec des boutons, mais cela ne semble pas fonctionner.
java
android
android-preferences
Badr Hari
la source
la source
onPostCreate
ne fonctionnera pas car il est trop tôt (Nullpointer-Exception). Toute aide est appréciéefindPreference
est obsolète.PreferenceActivity.findPreference
est obsolète. Cependant, la documentation indique que «[T] sa fonctionnalité doit maintenant être trouvée dans la nouvelle classe PreferenceFragment. Si vous utilisez PreferenceActivity dans son ancien mode, la documentation s'applique aux API obsolètes ici.», EtPreferenceFragment.findPreference
n'est pas obsolète (à partir de l'API niveau 23, actuel au moment de la rédaction). Donc,findPreference
lui-même n'est pas obsolète; c'est l'utilisation directePreferenceActivity
qui est déconseillée. Google veut que nous passions à laPreferenceFragment
place et non à l'abandonfindPreference
.onPreferenceClick
, retournetrue
si le clic a été géré autrementfalse
.pour lancer un site Web:
pour lancer une activité spécifique:
vous pouvez également utiliser "android: mimetype" pour définir le type MIME.
la source
intent-filter
dans le manifeste pour leSomeActivity
, parce que je reçoisActivityNotFoundException
:(Vous devez utiliser l'événement onPreferenceTreeClick.
Par exemple, voir http://www.javased.com/index.php?source_dir=platform_packages_apps_phone/src/com/android/phone/MobileNetworkSettings.java
la source
MISE À JOUR 2018+ Aujourd'hui, la
findPreference
méthode est obsolète. Donc, pour y parvenir, remplacez simplement laonPreferenceTreeClick
méthode dans votre fragment de préférence. Par exemple:De plus, si vous devez gérer un clic à l'intérieur d'un élément de préférence particulier (par exemple
ListPreference
), vous devez enregistrer l'setOnPreferenceChangeListener
intérieur de laonCreate
méthode duMySettingsFragment
:la source
onPreferenceClick
etonPreferenceTreeClick
?Un suivi sur la réponse de @jason gilbert
Je suis sur targetSdkVersion 25 , et sa réponse n'a pas fonctionné, j'ai dû envelopper la balise d'intention avec une balise Preference. Exemple:
la source