Android
Spinner
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
.
- 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"
- 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
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.
}