Creare uno Spinner in Android

Uno spinner è un oggetto (equivalente ad una selectbox in Html) utilizzabile sul layout grafico di un dispositivo Android che fornisce un modo rapido per selezionare i valori contenuti in un menu a discesa che si apre quando si fa click su di esso.

Nello stato di default un spinner mostra sempre un valore selezionato che cambia quando si fa click sulle opzioni disponibili all’interno del menu.

In questo articolo ci occupiamo di sviluppare un’applicazione per rappresentare il funzionamento di uno spinner mostrando un “Toast” quando si fa click su uno dei valori disponibili.

Apriamo eclipse  e creiamo un nuovo progetto cliccando su File –>New->Android Application Project , si apriranno una serie di schermate di configurazione del progetto. Nella prima finestra che visualizziamo diamo il nome al nostro progetto ed andiamo avanti facendo click su “Next”:

spinner_android1

Nella schermata successiva visualizziamo alcuni parametri di configurazione come la scelta di un’icona personalizzata per il lancio dell’app,  creare l’activity principale e dove posizionare il contenuto del progetto all’ interno di un Workspace:

spinner_android2

Clicchaimo su next e passaimo alla schermata successiva nella quale sceglieremo di utilizzare una blank Activity :

spinner_android3

Andiamo ancora avanti, visualizzeremo l’ultima schermata di configurazione nella quale andremo a dare il nome all’activity e al relativo layout:

ListViewExample3

Main Layout File

Dopo aver terminato i passaggi iniziali di configurazione, entriamo nel vivo dello sviluppo della nostra applicazione cominciando nella modifica del file “activity_main.xml” che si trova sotto il percorso “res/layout/” del nostro progetto.

Apriamo il file in modalità “Graphical layout”, eliminiamo la stringa “Hello world” impostatata di default da eclipse e con la comodità del “drag&drop” inseriamo un  oggetto spinner. L’ Xml del layout principale sarà il seguente:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<Spinner
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/months"
android:prompt="@string/spin"
/>

</RelativeLayout>

Elenco degli elementi dello spinner

Apriamo il file “string.xml” che si trova sotto il percorso “res/values/” del nostro progetto e definiamo la lista degli elementi che si dovranno visualizzare:

<?xml version="1.0" encoding="utf-8"?>
<resources>

<string name="app_name">ExampleSpinner</string>
<string name="action_settings">Settings</string>
<string name="spin">Choose a month</string>

<string-array name="months">
<item>January</item>
<item>February</item>
<item> March </item>
<item>April</item>
<item> May</item>
<item> June </item>
<item>July</item>
<item> August</item>
<item> September</item>
<item> October</item>
<item> November</item>
<item> December</item>
</string-array>
</resources>

MainActivity.java

Apriamo adesso il file MainActivity.java che si trova sotto il percorso “src/com.apps.examplespinner/”

package com.apps.examplespinner;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;

public class MainActivity extends Activity implements OnItemSelectedListener {

private Spinner spinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

spinner = (Spinner) findViewById(R.id.spinner1);

ArrayAdapter<?> adapter = ArrayAdapter.createFromResource(getApplicationContext(),  R.array.months, android.R.layout.simple_spinner_dropdown_item);
//creazione dell'adapter per lo spinner
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

spinner.setAdapter(adapter);
//spinner click listener
spinner.setOnItemSelectedListener(this);

}

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

//prendo il valore dell'elemento selezionato
String item = parent.getItemAtPosition(position).toString();

//visualizzo l'elemento selezionato
Toast.makeText(parent.getContext(), item, Toast.LENGTH_LONG).show();
}

public void onNothingSelected(AdapterView<?> arg0) {

}

}

Adesso siamo pronti per lanciare e testare la nostra app, andiamo sul menu di eclipse e facciamo ckick su run->debug  e nella finestra che si apre selezioniamo la voce“Android Application”.

Potete scaricare qui il sorgente dell’applicazione.

Lascia un commento