¿Es posible llenar las opciones de un Spinner directamente en el diseño xml? Esta página sugiere que debería usar un ArrayAdapter? Parece incómodo no poder hacerlo ...
246
¿Es posible llenar las opciones de un Spinner directamente en el diseño xml? Esta página sugiere que debería usar un ArrayAdapter? Parece incómodo no poder hacerlo ...
No estoy seguro de esto, pero inténtalo.
En tu strings.xml define:
<string-array name="array_name">
<item>Array Item One</item>
<item>Array Item Two</item>
<item>Array Item Three</item>
</string-array>
En tu diseño:
<Spinner
android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true"
android:entries="@array/array_name"
/>
Escuché que esto no siempre funciona en el diseñador, pero se compila bien.
android:entryValues="@array/array_name_values"
.drawSelectorOnTop
ya que no hay un selector separado que no sea el Spinner en sí. Sin embargo, la solución definitivamente funciona, ¡gracias!android:entryValues
. ListPreference lo admite.Spinner
yAbsSpinner
. Tanto en API 19 como en 23, el constructor AbsSpinner hace uso de,R.styleable.AbsSpinner_entries
pero en ninguna parte lo haceentryValues
. Es solo una coincidencia que su código estaba haciendo lo que esperaba. (¿O tal vez las ROM de algunos fabricantes tienen una implementación Spinner personalizada que realmente manejaandroid:entryValues
?)Defina esto en su archivo String.xml y asigne un nombre a la matriz que desee, como "Peso"
y este código en tu layout.xml
En su archivo java,
getActivity
se usa en fragmentos; Si escribe ese código en la actividad, elimínelogetActivity
.fuente
Respecto al primer comentario: si haces esto, obtendrás un error (en Android Studio). Esto se refiere a que está fuera del espacio de nombres de Android. Si no sabe cómo solucionar este error, consulte el ejemplo a continuación. ¡Espero que esto ayude!
Ejemplo -Antes:
Ejemplo - Después:
fuente
string-array
que tenga unname
atributo y no reconoce elandroid:name
uno.