Ist es möglich, die Optionen eines Spinners direkt in der Layout-XML zu füllen? Diese Seite schlägt vor, dass ich einen ArrayAdapter verwenden sollte? Es scheint unangenehm, es nicht zu können.
245
Ist es möglich, die Optionen eines Spinners direkt in der Layout-XML zu füllen? Diese Seite schlägt vor, dass ich einen ArrayAdapter verwenden sollte? Es scheint unangenehm, es nicht zu können.
Ich bin mir nicht sicher, aber probieren Sie es aus.
Definieren Sie in Ihrer Datei strings.xml:
<string-array name="array_name">
<item>Array Item One</item>
<item>Array Item Two</item>
<item>Array Item Three</item>
</string-array>
In Ihrem Layout:
<Spinner
android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true"
android:entries="@array/array_name"
/>
Ich habe gehört, dass dies beim Designer nicht immer funktioniert, aber es lässt sich gut kompilieren.
android:entryValues="@array/array_name_values"
.drawSelectorOnTop
da es keinen anderen Selektor als den Spinner selbst gibt. Die Lösung funktioniert aber definitiv, danke!android:entryValues
. ListPreference unterstützt dies.Spinner
und anAbsSpinner
. Sowohl auf API 19 als auch auf API 23 verwendet der AbsSpinner-Konstruktor,R.styleable.AbsSpinner_entries
jedoch nirgendwoentryValues
. Es ist nur ein Zufall, dass Ihr Code das tat, was Sie erwartet hatten. (Oder vielleicht haben die ROMs einiger Hersteller eine benutzerdefinierte Spinner-Implementierung, die tatsächlichandroid:entryValues
Definieren Sie dies in Ihrer String.xml-Datei und benennen Sie das gewünschte Array, z. B. "Weight".
und dieser Code in Ihrer layout.xml
Wird in Ihrer Java-Datei
getActivity
als Fragment verwendet. Wenn Sie diesen Code in Aktivität schreiben, entfernen Sie ihngetActivity
.quelle
Zum ersten Kommentar: Wenn Sie dies tun, erhalten Sie eine Fehlermeldung (in Android Studio). Dies bezieht sich darauf, dass es außerhalb des Android-Namespace liegt. Wenn Sie nicht wissen, wie Sie diesen Fehler beheben können, sehen Sie sich das folgende Beispiel an. Hoffe das hilft!
Beispiel - Vorher:
Beispiel - Nachher:
quelle
string-array
, dass er einname
Attribut hat, und erkennt das nichtandroid:name
.