Beispiel für ein Android-Spinner (Dropdown-Liste)

Beispiel für Android-Spinner (Dropdown-Liste)

In Android können Sie mit der Klasse "http://developer.android.com/reference/android/widget/Spinner.html[android.widget.Spinner]" eine Dropdown-Box-Auswahlliste rendern.

Note
Spinner ist ein Widget, das einer Dropdown-Liste zum Auswählen von Elementen ähnelt.

In diesem Tutorial zeigen wir Ihnen, wie Sie die folgenden Aufgaben ausführen:

  1. Rendern Sie einen Spinner in XML und laden Sie die Auswahlelemente auch über eine XML-Datei.

  2. Rendern Sie einen anderen Spinner in XML und laden Sie die Auswahlelemente dynamisch per Code.

  3. Hängen Sie einen Listener an Spinner an und feuern Sie, wenn der Benutzer einen Wert in Spinner auswählt.

  4. Rendern Sie einen Listener und hängen Sie ihn an eine normale Schaltfläche an. Wenn der Benutzer darauf klickt, wird der ausgewählte Spinner-Wert angezeigt.

P.S This project is developed in Eclipse 3.7, and tested with Android 2.3.3.

1. Liste der Artikel in Spinner

Öffnen Sie die Datei "res/values/strings.xml" und definieren Sie die Liste der Elemente, die in Spinner angezeigt werden (Dropdown-Liste).

Datei: res / values ​​/ strings.xml



    MyAndroidApp
    Choose a country

    
        Malaysia
        United States
        Indonesia
        France
        Italy
        Singapore
        New Zealand
        India
    

2. Spinner (DropDown-Liste)

Öffnen Sie die Datei "res/layout/main.xml", fügen Sie zwei Spinner-Komponenten und eine Schaltfläche hinzu.

  1. In "spinner1" repräsentiert "android:entries" die Auswahlelemente in spinner.

  2. In „spinner2“ werden die Auswahlelemente später im Code definiert.

Datei: res / layout / main.xml



    

    

    

3. Code Code

Lesen Sie den Code und auch den Kommentar des Codes, er sollte selbsterklärend sein.

Datei: MyAndroidAppActivity.java

package com.example.android;

import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.Toast;

public class MyAndroidAppActivity extends Activity {

  private Spinner spinner1, spinner2;
  private Button btnSubmit;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    addItemsOnSpinner2();
    addListenerOnButton();
    addListenerOnSpinnerItemSelection();
  }

  // add items into spinner dynamically
  public void addItemsOnSpinner2() {

    spinner2 = (Spinner) findViewById(R.id.spinner2);
    List list = new ArrayList();
    list.add("list 1");
    list.add("list 2");
    list.add("list 3");
    ArrayAdapter dataAdapter = new ArrayAdapter(this,
        android.R.layout.simple_spinner_item, list);
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner2.setAdapter(dataAdapter);
  }

  public void addListenerOnSpinnerItemSelection() {
    spinner1 = (Spinner) findViewById(R.id.spinner1);
    spinner1.setOnItemSelectedListener(new CustomOnItemSelectedListener());
  }

  // get the selected dropdown list value
  public void addListenerOnButton() {

    spinner1 = (Spinner) findViewById(R.id.spinner1);
    spinner2 = (Spinner) findViewById(R.id.spinner2);
    btnSubmit = (Button) findViewById(R.id.btnSubmit);

    btnSubmit.setOnClickListener(new OnClickListener() {

      @Override
      public void onClick(View v) {

        Toast.makeText(MyAndroidAppActivity.this,
        "OnClickListener : " +
                "\nSpinner 1 : "+ String.valueOf(spinner1.getSelectedItem()) +
                "\nSpinner 2 : "+ String.valueOf(spinner2.getSelectedItem()),
            Toast.LENGTH_SHORT).show();
      }

    });
  }
}

Datei: CustomOnItemSelectedListener.java

package com.example.android;

import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Toast;

public class CustomOnItemSelectedListener implements OnItemSelectedListener {

  public void onItemSelected(AdapterView parent, View view, int pos,long id) {
    Toast.makeText(parent.getContext(),
        "OnItemSelectedListener : " + parent.getItemAtPosition(pos).toString(),
        Toast.LENGTH_SHORT).show();
  }

  @Override
  public void onNothingSelected(AdapterView arg0) {
    // TODO Auto-generated method stub
  }

}

4. Demo

Führen Sie die Anwendung aus.

1. Als Ergebnis werden zwei Spinner angezeigt:

android spinner demo1

android spinner demo2

2. Wählen Sie "Frankreich" von spinner1, der Listener für die Elementauswahl wird ausgelöst:

android spinner demo3

3. Wähle "list2" von spinner2 aus und klicke auf "submit":

android spinner demo4

Quellcode herunterladen

Laden Sie es herunter -Android-Spinner-DropDownList-Example.zip (16 KB)