Existe-t-il un moyen d'ajouter un bouton au bas de l'écran des préférences et de les faire fonctionner correctement lors du défilement?
106
Existe-t-il un moyen d'ajouter un bouton au bas de l'écran des préférences et de les faire fonctionner correctement lors du défilement?
Réponses:
Il existe une autre solution pour personnaliser l'apparence des préférences.
Concevez une mise en page XML normale avec des boutons ou tout ce que vous voulez ajouter aux préférences standard. Incluez un
ListView
dans votre mise en page et donnez-lui l'ID@android:id/list
.Disons que nous appelons le fichier de mise en page
res/layout/main.xml
. Cela pourrait ressembler à ceci:Dans votre
PreferenceActivity
, ajoutez ces deux lignes à votreonCreate
:Le
ListView
dans votre mise en page sera alors remplacé par les préférences définies de la manière habituelle dansres/xml/preferences.xml
.la source
Je sais que c'est un peu tard, mais je viens de trouver une solution que j'aime mieux que la solution appréciée de Max.
Vous pouvez simplement ajouter un pied de page (ou si vous souhaitez que le bouton soit en haut, un en-tête) à la ListView de PreferenceActivity comme ceci:
J'espère que ça aidera quelqu'un.
la source
ListView
avec PreferenceFragment :(PreferenceFragment
a sa propre liste), mais je l'ai résolu en créant simplement unPreference
et en définissant unIntent
dessus. Il n'était pas nécessaire de créer un bouton (du moins dans mon cas)Cet exemple ci-dessous rendra un bouton en bas de la page (au cas où quelqu'un serait toujours intéressé).
Dans le cas d'un LinearLayout, vous pouvez également appliquer des pondérations; cela est nécessaire car la Listview est définie sur * fill_parent *. Je fais généralement cela en ajoutant * android: layout_weight *:
L'explication ci-dessous n'est probablement pas à 100% mais elle vous aidera à comprendre ...
Vous pourriez aussi dire, parce que le bouton n'a pas de poids; le bouton est rendu à une hauteur de 0dp.
Maintenant, avec le layout_weigths ajouté, il laissera le bouton rendre inview
la source
En fait, il existe une solution. Voici un code, j'espère, cela sera utile à tout le monde. Il ressemble à 3 options et 2 boutons en bas de l'écran, indépendamment de la résolution de l'écran (ciblé à 240 comme le plus bas)
la source
Il vous suffit d'utiliser PreferenceFragment dans l'activité générale et d'ajouter le bouton dans la mise en page de l'activité.
SettingActivity.java
activity_setting
la source
buttonSave
:)Ce serait à quoi ressemble le code dans l'activité de l'exemple de ronny. Mon intention était de mettre un menu en bas de l'écran.
la source
Je fais référence à @Ronnie, utilise RelativeLayout et définit une hauteur pour layout_height de listview, puis définit le layout_alignParentBottom = "true" du bouton, il peut rendre un bouton au bas de PreferenceScreen; puis utilisez la méthode @Max. cela fonctionne pour mes besoins.
la source
Il est également possible d'ajouter des boutons d'action à la barre d'action pour une approche standard Android.
la source
Vue personnalisée dans Preference Activity, cela aidera à ajouter une vue personnalisée dans PreferenceActivity dans Android.
Créer main.xml, la seule vue nécessaire est un ListView, avec id:
android:id="@android:id/list"
.Créer CustomPreferenceActivity.java
la source
Ce qui suit est une solution simple pour ajouter un bouton cliquable à votre écran de préférences. Ceci est rendu facile car les préférences réservent déjà l'espace dans l'android: widgetLayout et le bouton peuvent passer des clics avec android: onClick.
Créez d'abord un button.xml avec le contenu
Maintenant, dans votre preferences.xml, ajoutez la préférence
Votre PreferenceActivity ne doit plus contenir qu'un membre onButtonClick
la source
preferences.xml:
SettingsFragment.java:
la source
J'ai trouvé que toutes les réponses ci-dessus n'étaient pas utilisables car les mises en page que j'ai créées pour `` envelopper '' le
PreferenceScreen
conteneur dans des mises en page personnalisées (puis ajouter un bouton sous leListView
) ne fonctionnaient pas réellement.Ils superposaient uniquement la mise en page personnalisée en haut de la liste des préférences (flottante), et cliquer (par exemple) sur un nouveau bouton personnalisé n'appellerait que la préférence sous le bouton.
Cependant, j'ai trouvé cette solution qui fonctionne un régal pour ajouter un bouton sous le conteneur de liste de préférences, lors de l'utilisation
PreferenceFragment
.la source