Ricerca…


Aggiungere uno spinner alla tua attività

In /res/values/strings.xml:

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

Nel layout XML:

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

In attività:

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

Esempio di spinner di base

Spinner È un tipo di input a discesa. Innanzitutto nel layout

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

Ora in secondo luogo popola i valori nella casella di selezione Esistono principalmente due modi per popolare i valori nella spinner .

  1. Da XML stesso creare un array.xml nella directory dei valori sotto res . Crea questo array
  <string-array name="defaultValue">
    <item>--Select City Area--</item>
    <item>--Select City Area--</item>
    <item>--Select City Area--</item>
</string-array>

Ora aggiungi questa riga in sppiner XML

            android:entries="@array/defaultValue"
  1. Puoi anche aggiungere valori tramite JAVA

se stai usando in activity cityArea = (Spinner) findViewById (R.id.cityArea); altrimenti se stai usando in fragment

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

Ora crea un arrayList di 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));

Questo sarà simile

inserisci la descrizione dell'immagine qui inserisci la descrizione dell'immagine qui

Secondo la versione Android del dispositivo renderà lo stile

Di seguito sono riportati alcuni dei temi predefiniti

Se un'app non richiede esplicitamente un tema nel file manifest, Android System determinerà il tema predefinito basato su targetSdkVersion dell'app per mantenere le aspettative originali dell'app:

Versione di Android SDK Tema predefinito
Versione <11 @android: Stile / a tema
Versione tra 11 e 13 @android: Stile / Theme.Holo
14 e oltre @android: Stile / Theme.DeviceDefault

Spinner può essere facilmente personalizzato con l'aiuto di xml es

 android:background="@drawable/spinner_background"

 android:layout_margin="16dp"

 android:padding="16dp"

Crea uno sfondo personalizzato in XML e usalo.

ottenere facilmente la posizione e altri dettagli dell'elemento selezionato nella casella di selezione

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

        }
    });

Cambia il colore del testo dell'elemento selezionato nella casella di selezione

Questo può essere fatto in due modi in XML

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

Questo cambierà il colore dell'elemento selezionato nel popup.

e da JAVA fai questo (nel 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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow