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 .

  1. 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"
  1. 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

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

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.
            }


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow