Android
Spinner
Suche…
Einen Spinner zu Ihrer Aktivität hinzufügen
In /res/values/strings.xml:
<string-array name="spinner_options">
<item>Option 1</item>
<item>Option 2</item>
<item>Option 3</item>
</string-array>
Im Layout XML:
<Spinner
android:id="@+id/spinnerName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/spinner_options" />
In Aktivität:
Spinner spinnerName = (Spinner) findViewById(R.id.spinnerName);
spinnerName.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String chosenOption = (String) parent.getItemAtPosition(position);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {}
});
Grundlegendes Spinner-Beispiel
Spinner Es ist eine Art Dropdown-Eingabe. Erstens im Layout
<Spinner
android:id="@+id/spinner" <!-- id to refer this spinner from JAVA-->
android:layout_width="match_parent"
android:layout_height="wrap_content">
</Spinner>
Jetzt zweitens Werte in Spinner auffüllen Es gibt hauptsächlich zwei Möglichkeiten, Werte in spinner
.
- Erstellen Sie aus XML selbst ein Array.xml im Werte- Verzeichnis unter res . Erstellen Sie dieses
array
<string-array name="defaultValue">
<item>--Select City Area--</item>
<item>--Select City Area--</item>
<item>--Select City Area--</item>
</string-array>
Fügen Sie nun diese Zeile in sppiner XML hinzu
android:entries="@array/defaultValue"
- Sie können auch Werte über JAVA hinzufügen
wenn Sie in activity
cityArea = (Spinner) findViewById (R.id.cityArea) verwenden; sonst, wenn Sie in fragment
cityArea = (Spinner) findViewById(R.id.cityArea);
Erstellen Sie nun eine arrayList
von Strings
ArrayList<String> area = new ArrayList<>();
//add values in area arrayList
cityArea.setAdapter(new ArrayAdapter<String>(context
, android.R.layout.simple_list_item_1, area));
Das wird aussehen
Je nach Android-Version wird es gerendert
Im Folgenden sind einige der Standarddesigns aufgeführt
Wenn eine App nicht explizit ein Design in ihrem Manifest anfordert, bestimmt Android System das Standarddesign basierend auf der targetSdkVersion der App, um die ursprünglichen Erwartungen der App zu erfüllen:
Android SDK-Version | Standardthema |
---|---|
Version <11 | @android: style / Theme |
Version zwischen 11 und 13 | @android: style / Theme.Holo |
14 und höher | @android: style / Theme.DeviceDefault |
Spinner
kann leicht mit Hilfe von XML angepasst werden, z
android:background="@drawable/spinner_background"
android:layout_margin="16dp"
android:padding="16dp"
Erstellen Sie einen benutzerdefinierten Hintergrund in XML und verwenden Sie ihn.
leicht die Position und andere Details des ausgewählten Elements im Spinner ermitteln
cityArea.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
areaNo = position;
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
Ändern Sie die Textfarbe des ausgewählten Elements im Drehfeld
Dies kann auf zwei Arten in XML erfolgen
<item android:state_activated="true" android:color="@color/red"/>
Dadurch wird die Farbe des ausgewählten Elements im Popup geändert.
und von JAVA aus (im setOnItemSelectedListener (...))
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
((TextView) parent.getChildAt(0)).setTextColor(0x00000000);
// similarly change `background color` etc.
}