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:
-
Rendern Sie einen Spinner in XML und laden Sie die Auswahlelemente auch über eine XML-Datei.
-
Rendern Sie einen anderen Spinner in XML und laden Sie die Auswahlelemente dynamisch per Code.
-
Hängen Sie einen Listener an Spinner an und feuern Sie, wenn der Benutzer einen Wert in Spinner auswählt.
-
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.
-
In "spinner1" repräsentiert "
android:entries
" die Auswahlelemente in spinner. -
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); Listlist = 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:
2. Wählen Sie "Frankreich" von spinner1, der Listener für die Elementauswahl wird ausgelöst:
3. Wähle "list2" von spinner2 aus und klicke auf "submit":
Quellcode herunterladen
Laden Sie es herunter -Android-Spinner-DropDownList-Example.zip (16 KB)