Exemple de spinner Android (liste déroulante)
Dans Android, vous pouvez utiliser la classe «http://developer.android.com/reference/android/widget/Spinner.html[android.widget.Spinner]» pour afficher une liste de sélection de liste déroulante.
Note
Spinner est un widget similaire à une liste déroulante pour sélectionner des éléments.
Dans ce didacticiel, nous vous montrons comment effectuer les tâches suivantes:
-
Rendez un Spinner en XML et chargez également les éléments de sélection via un fichier XML.
-
Rendez un autre Spinner en XML et chargez les éléments de sélection via du code de manière dynamique.
-
Attachez un écouteur sur Spinner, déclenchez lorsque l'utilisateur sélectionne une valeur dans Spinner.
-
Rendez et attachez un écouteur sur un bouton normal, déclenchez lorsque l'utilisateur clique dessus, et il affichera la valeur sélectionnée de Spinner.
P.S This project is developed in Eclipse 3.7, and tested with Android 2.3.3.
1. Liste des éléments dans Spinner
Ouvrez le fichier «res/values/strings.xml», définissez la liste des éléments qui s'afficheront dans Spinner (liste déroulante).
Fichier: res / values / strings.xml
MyAndroidApp Choose a country - Malaysia
- United States
- Indonesia
- France
- Italy
- Singapore
- New Zealand
- India
2. Spinner (liste déroulante)
Ouvrez le fichier «res/layout/main.xml», ajoutez deux composants spinner et un bouton.
-
Dans «spinner1», le «
android:entries
» représente les éléments de sélection dans le spinner. -
Dans «spinner2», les éléments de sélection seront définis dans le code ultérieurement.
Fichier: res / layout / main.xml
3. Code Code
Lisez le code et aussi le commentaire du code, il devrait être explicite.
Fichier: 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(); } }); } }
Fichier: 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
Exécutez l'application.
1. Résultat, deux filateurs s'affichent:
2. Sélectionnez «France» dans spinner1, l'écouteur de sélection d'élément est renvoyé:
3. Sélectionnez «list2» dans spinner2 et cliquez sur le bouton soumettre:
Télécharger le code source
Téléchargez-le -Android-Spinner-DropDownList-Example.zip (16 Ko)