Est-il possible de remplir les options d'un Spinner directement dans la mise en page xml? Cette page suggère que je devrais utiliser un ArrayAdapter? Il semble maladroit de ne pas pouvoir le faire ..
246
Est-il possible de remplir les options d'un Spinner directement dans la mise en page xml? Cette page suggère que je devrais utiliser un ArrayAdapter? Il semble maladroit de ne pas pouvoir le faire ..
Je ne suis pas sûr de cela, mais essayez-le.
Dans votre strings.xml, définissez:
<string-array name="array_name">
<item>Array Item One</item>
<item>Array Item Two</item>
<item>Array Item Three</item>
</string-array>
Dans votre mise en page:
<Spinner
android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true"
android:entries="@array/array_name"
/>
J'ai entendu dire que cela ne fonctionne pas toujours sur le concepteur, mais cela se compile bien.
android:entryValues="@array/array_name_values"
.drawSelectorOnTop
car il n'y a pas de sélecteur séparé autre que le Spinner lui-même. La solution fonctionne certainement, merci!android:entryValues
. ListPreference le prend en charge.Spinner
etAbsSpinner
. Sur les API 19 et 23, le constructeur AbsSpinner utilise,R.styleable.AbsSpinner_entries
mais il n'utilise nulle partentryValues
. Ce n'est qu'une coïncidence si votre code faisait ce que vous attendiez. (Ou peut-être que les ROM de certains fabricants ont une implémentation Spinner personnalisée qui gère réellementandroid:entryValues
?)Définissez-le dans votre fichier String.xml et nommez le tableau comme vous le souhaitez, par exemple "Weight"
et ce code dans votre layout.xml
Dans votre fichier java,
getActivity
est utilisé en fragment; si vous écrivez ce code dans l'activité, supprimez-legetActivity
.la source
En ce qui concerne le premier commentaire: Si vous faites cela, vous obtiendrez une erreur (dans Android Studio). Cela concerne le fait qu'il soit hors de l'espace de noms Android. Si vous ne savez pas comment corriger cette erreur, consultez l'exemple ci-dessous. J'espère que cela t'aides!
Exemple -avant:
Exemple - Après:
la source
string-array
qu'il ait unname
attribut et ne reconnaît pas celui-android:name
ci.