Android - Spinner

Spinner ti consente di selezionare un elemento da un menu a discesa

Per esempio. Quando si utilizza l'applicazione Gmail, verrà visualizzato il menu a discesa come mostrato di seguito, è necessario selezionare un elemento da un menu a discesa.

Esempio di filatore

Esempio

Questo esempio dimostra la categoria dei computer, è necessario selezionare una categoria dalla categoria.

Per sperimentare questo esempio, è necessario eseguirlo su un dispositivo effettivo dopo aver sviluppato l'applicazione in base ai passaggi seguenti.

Passi Descrizione
1 Utilizzerai Android Studio per creare un'applicazione Android e chiamarla AndroidSpinnerExample in un pacchetto com.example.spinner.
2 Modifica il file src / AndroidSpinnerExampleActivity.java per creare una semplice visualizzazione elenco con gli elementi che vengono visualizzati come elementi di selezione
3 Modifica il file res / layout / activity_main.xml per aggiungere il rispettivo codice XML.
4 Non è necessario definire costanti di stringa predefinite. Android Studio si occupa delle costanti di stringa predefinite in string.xml
5 Esegui l'applicazione e scegli un dispositivo Android in esecuzione, installa l'applicazione su di esso e verifica i risultati.

Di seguito è riportato il contenuto del file di attività principale modificato src/com.example.spinner/AndroidSpinnerExampleActivity.java.

package com.example.spinner;

import java.util.ArrayList;
import java.util.List; 
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;
import android.widget.AdapterView.OnItemSelectedListener;
 
class AndroidSpinnerExampleActivity extends Activity implements OnItemSelectedListener{
   @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
      
      // Spinner element
      Spinner spinner = (Spinner) findViewById(R.id.spinner);
      
      // Spinner click listener
      spinner.setOnItemSelectedListener(this);
      
      // Spinner Drop down elements
      List<String> categories = new ArrayList<String>();
      categories.add("Automobile");
      categories.add("Business Services");
      categories.add("Computers");
      categories.add("Education");
      categories.add("Personal");
      categories.add("Travel");
      
      // Creating adapter for spinner
      ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, categories);
      
      // Drop down layout style - list view with radio button
      dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
      
      // attaching data adapter to spinner
      spinner.setAdapter(dataAdapter);
   }
   
   @Override
   public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
      // On selecting a spinner item
      String item = parent.getItemAtPosition(position).toString();
      
      // Showing selected spinner item
      Toast.makeText(parent.getContext(), "Selected: " + item, Toast.LENGTH_LONG).show();
   }
   public void onNothingSelected(AdapterView<?> arg0) {
      // TODO Auto-generated method stub
   }
}

Modifica il contenuto di res/layout/activity_main.xml al seguente

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:padding="10dip"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content">
   
   <TextView
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:layout_marginTop="10dip"
      android:text="Category:"
      android:layout_marginBottom="5dp"/>
      
   <Spinner
      android:id="@+id/spinner"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:prompt="@string/spinner_title"/>
      
</LinearLayout>

Modifica il file res/values/string.xml al seguente

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <string name="app_name">AndroidSpinnerExample</string>
</resources>

Questa è l'impostazione predefinita AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.spinner" >

   <application
      android:allowBackup="true"
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name="com.example.spinner.AndroidSpinnerExampleActivity"
         android:label="@string/app_name" >
      
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      
      </activity>
      
   </application>
</manifest>

Proviamo a eseguire la tua applicazione AndroidSpinnerExample. Presumo che tu abbia collegato il tuo attuale dispositivo mobile Android al tuo computer. Per eseguire l'app da Android Studio, apri uno dei file di attività del tuo progetto e fai clic sull'icona Esegui dalla barra degli strumenti. Prima di avviare l'applicazione, Android Studio mostrerà la seguente finestra per selezionare un'opzione in cui desideri eseguire l'applicazione Android.

Se fai clic sul pulsante di selezione, verrà visualizzato un menu a discesa come mostrato di seguito