23 Come usare uno Spinner

Dopo il precedente articolo teorico in cui ho elencato le principali proprietà dello Spinner vediamo adesso come usarlo in un’applicazione.

Prima di tutto, forse alcuni di voi si stanno chiedendo perché usare uno Spinner? Oppure quando è utile usarlo?
È utile usare uno Spinner quando avete una lunga lista di valori dalla quale l’utente ne può scegliere solo una. Ad esempio create un’applicazione in cui l’utente deve inserire la sua città di nascità e al posto di mettere una EditText e lasciarla scrivere all’utente (che potrebbe commettere errori grammaticali) create una lista di città.

Aggiungiamo innanzitutto lo spinner nel nostro file layout xml e avremo il seguente codice:

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

Come layout_height lasciate sempre “wrap_content”. Con match_parent avrete la grafica sballata come potrete vedere voi stessi.
Adesso aggiungiamo nel file “String.xml” (oppure in un altro file Values xml creato da noi) il seguente vettore di valori che appariranno nel nostro Spinner:

<string-array name="nome_vettore">
    <item>primo elemento</item>
    <item>seconto elemento</item>
    <item>terzo elemento</item>
</string-array>

Io ho inserito solo 3 elementi per fare un esempio ma potete inserirne un numero illimitato (almeno credo, io non ho mai superato il limite).
Adesso passiamo infine al codice Java. Per sapere cosa ha selezionato l’utente utilizzate le seguenti righe di codice:

Spinner sp=(Spinner)findViewById(R.id.id_spinner);
sp.getSelectedItem().toString()

Come già visto con altri oggetti con la prima riga acquisite un puntatore allo Spinner attraverso il quale potete leggerne e modificarne certe proprietà. Con la seconda riga sappiamo quale elemento ha selezionato l’utente. Aggiungiamo il “toString” alla fine perché il metodo “getSelectedItem” ci restituiste un “Object” quindi ne facciamo il cast in modo da avere una Stringa che possiamo ad esempio confrontare con altre stringhe. Se abbiamo una lista di numeri possiamo fare il cast per trasformare l’Object in un intero.
Vi mostro un altro comando utile:

sp.setSelection(3);

Attraverso questo comando potete decidere quale elemento della lista sarà di default selezionato e cioè visibile nello Spinner prima di aprire la tendina. Ad esempio con 3 sarà il terzo elemento del vostro vettore ad essere selezionato di default.
NB: ricordate che su java la prima cella di qualsiasi vettore è la cella numero 0 quindi partite a contare sempre da 0.

Finisce qui questo articolo sullo Spinner. Se volete saperne di più su questo oggetto o volete sapere qualcosa in particolare scrivetemelo nei commenti.
Al prossimo articolo!

Please follow and like us: