Comment ajouter un bouton à PreferenceScreen
Est-il possible d'ajouter un bouton au bas de l'écran des préférences et de les faire travailler correcte lors du défilement?
- Avez-vous regardé la création d'une coutume préférence?
- Pour les futurs visiteurs, alors que Max est la solution fonctionne, il y a une autre solution: stackoverflow.com/a/7251575/802469
Vous devez vous connecter pour publier un commentaire.
Il y a une autre solution pour la personnalisation de l'apparence de l'écran de préférences.
La conception d'un XML normal de mise en page avec des boutons ou ce que vous voulez ajouter à la norme préférences. Inclure un
ListView
dans votre mise en page et de lui donner une ID@android:id/list
.Disons que nous appelons le fichier de mise en page
res/layout/main.xml
. Il pourrait ressembler à quelque chose comme ceci:Dans votre
PreferenceActivity
, ajoutez ces deux lignes à votreonCreate
:La
ListView
dans votre mise en page sera ensuite remplacée par les préférences définies de la manière habituelle dansres/xml/preferences.xml
.Je sais que c'est un peu tard, mais je viens de trouver une solution j'aime mieux que Max fait l'éloge de la solution.
Vous pouvez simplement ajouter un pied de page (ou si vous aimez le bouton sur le dessus, un en-tête) à la PreferenceActivity la ListView comme suit:
J'espère que cela aide quelqu'un.
ListView
avec PreferenceFragment:(PreferenceFragment
a sa propre liste), mais j'ai résolu seulement par la création d'unPreference
et la configuration d'unIntent
sur elle. Il n'y a pas besoin de créer un bouton (au moins dans mon cas)Cet exemple ci-dessous rendra un bouton au bas de la page (dans le cas où quelqu'un est intéressé (e).
Dans le cas d'un LinearLayout vous pouvez également appliquer des pondérations; ceci est nécessaire car la liste est définie sur *fill_parent*.
J'ai l'habitude de le faire en ajoutant *android:layout_weight* 's:
L'explication ci-dessous n'est pas propbably à 100%, mais il vous aidera à comprendre...
On pourrait aussi dire, parce que le Bouton n'a pas de poids; le bouton est rendu à 0dp hauteur.
Maintenant avec le layout_weigths ajouté ça va lett le bouton de rendu inview
En fait, il y a une solution. Voici un code, je l'espère, ce sera utile pour tout le monde.
Il ressemble à 3 options et les 2 boutons en bas de l'écran, indépendamment de la résolution de l'écran (l'objectif était de 240 comme plus bas)
Vous avez juste besoin d'utiliser PreferenceFragment à l'intérieur de l'Activité générale et ajouter le bouton dans l'activité de mise en page.
SettingActivity.java
activity_setting
buttonSave
🙂Ce serait quoi ressemble le code de l'activité à l'ronny l'exemple.
Mon intention était de mettre un menu en bas de l'écran.
J'référence @Ronnie, utilisez RelativeLayout et de définir une hauteur de layout_height de listview, puis placer le bouton layout_alignParentBottom = "true", Il peut rendre un bouton au bas de PreferenceScreen;
utilisez ensuite le chemin de @Max. il fonctionne pour mes besoins.
Il est également possible d'ajouter des boutons d'Action la barre d'action pour android approche standard.
Affichage personnalisé dans l'Activité de Préférence
cela aidera à ajouter une vue personnalisée dans PreferenceActivity dans Android.
Créer main.xml, la seule nécessaire de vue est un ListView, avec l'id:
android:id="@android:id/list"
.Créer CustomPreferenceActivity.java
La suite est une solution simple pour ajouter un bouton cliquable pour votre écran de préférences. C'est facile parce que les préférences déjà réserver l'espace dans l'android:widgetLayout et le bouton peut passer clics avec android:onClick.
D'abord créer un button.xml avec le contenu
Maintenant dans votre preferences.xml, ajouter la préférence
Votre PreferenceActivity maintenant ne doit contenir une onButtonClick membre
preferences.xml:
SettingsFragment.java:
J'ai trouvé toutes les réponses ci-dessus, à être non-utilisable comme toutes les mises en page que j'ai créé pour "envelopper" le
PreferenceScreen
conteneur à l'intérieur des mises en page personnalisées (puis l'ajout d'un bouton en dessous de laListView
) n'a pas fait de travail.Ils ne couvrit la mise en page personnalisée sur le haut de la liste des préférences (flottant), et en cliquant sur (par exemple) un nouveau bouton personnalisé serait seulement d'invoquer la préférence sous le bouton.
Cependant, j'ai trouvé cette solution qui fonctionne un régal pour l'ajout d'un bouton en dessous de la liste des préférences conteneur, lors de l'utilisation de
PreferenceFragment
.