Zoeken…


Een spinner toevoegen aan uw activiteit

In /res/values/strings.xml:

<string-array name="spinner_options">
    <item>Option 1</item>
    <item>Option 2</item>
    <item>Option 3</item>
</string-array>

In layout XML:

<Spinner
    android:id="@+id/spinnerName"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:entries="@array/spinner_options" />

In activiteit:

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) {}
});

Basic Spinner-voorbeeld

Spinner Het is een soort vervolgkeuzelijst. Ten eerste in de lay-out

  <Spinner
    android:id="@+id/spinner"     <!-- id to refer this spinner from JAVA-->
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    
</Spinner>

Nu tweede waarden invullen in spinner Er zijn hoofdzakelijk twee manieren om waarden in spinner te vullen.

  1. Van XML zelf zorgen voor een array.xml in waarden directory onder res. Maak deze array
  <string-array name="defaultValue">
    <item>--Select City Area--</item>
    <item>--Select City Area--</item>
    <item>--Select City Area--</item>
</string-array>

Voeg nu deze regel toe in sppiner XML

            android:entries="@array/defaultValue"
  1. U kunt ook waarden toevoegen via JAVA

als u in activity cityArea = (Spinner) gebruikt findViewById (R.id.cityArea); anders als u in fragment

cityArea = (Spinner) findViewById(R.id.cityArea);

Maak nu een arrayList met 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));

Dit ziet er zo uit

voer hier de afbeeldingsbeschrijving in voer hier de afbeeldingsbeschrijving in

Volgens de Android-versie van het apparaat wordt stijl weergegeven

Hier volgen enkele standaardthema's

Als een app niet expliciet om een thema in zijn manifest vraagt, bepaalt Android-systeem het standaardthema op basis van de targetSdkVersion van de app om de oorspronkelijke verwachtingen van de app te behouden:

Android SDK-versie Standaard thema
Versie <11 @android: stijl / Theme
Versie tussen 11 en 13 @android: stijl / Theme.Holo
14 en hoger @android: stijl / Theme.DeviceDefault

Spinner kan eenvoudig worden aangepast met behulp van bijvoorbeeld xml

 android:background="@drawable/spinner_background"

 android:layout_margin="16dp"

 android:padding="16dp"

Maak een aangepaste achtergrond in XML en gebruik deze.

krijg eenvoudig de positie en andere details van het geselecteerde item in de spinner

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) {

        }
    });

Wijzig de tekstkleur van het geselecteerde item in de spinner

Dit kan op twee manieren in XML worden gedaan

<item android:state_activated="true" android:color="@color/red"/>

Hiermee wordt de geselecteerde itemkleur in de pop-up gewijzigd.

en vanuit JAVA doet u dit (in de 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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow