Пример Android Spinner (выпадающий список)
В Android вы можете использовать класс «http://developer.android.com/reference/android/widget/Spinner.html[android.widget.Spinner]» для отображения выпадающего списка выбора.
Note
Spinner - это виджет, похожий на раскрывающийся список для выбора элементов.
В этом уроке мы покажем вам, как выполнять следующие задачи:
-
Визуализируйте Spinner в XML и загрузите элементы выбора через XML-файл.
-
Визуализируйте еще один Spinner в XML и динамически загружайте элементы выбора с помощью кода.
-
Присоедините слушателя к Spinner, запускайте, когда пользователь выбирает значение в Spinner.
-
Рендеринг и присоединение слушателя к обычной кнопке, запуск при нажатии пользователем на нее, и он отобразит выбранное значение Spinner.
P.S This project is developed in Eclipse 3.7, and tested with Android 2.3.3.
1. Список предметов в Spinner
Откройте файл «res/values/strings.xml», определите список элементов, которые будут отображаться в Spinner (раскрывающийся список).
Файл: res / values / strings.xml
MyAndroidApp Choose a country - Malaysia
- United States
- Indonesia
- France
- Italy
- Singapore
- New Zealand
- India
2. Spinner (выпадающий список)
Откройте файл «res/layout/main.xml», добавьте два компонента счетчика и кнопку.
-
В «spinner1» «
android:entries
» представляет элементы выбора в счетчике. -
В «spinner2» элементы выбора будут определены в коде позже.
Файл: res / layout / main.xml
3. Код код
Прочитайте код, а также комментарий к коду, это должно быть само за себя.
Файл: 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(); } }); } }
Файл: 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
Запустите приложение.
1. Результат, два счетчика отображаются:
2. Выберите «Франция» из spinner1, слушатель выбора предмета уволен:
3. Выберите «list2» из spinner2 и нажмите кнопку «Отправить»:
Скачать исходный код
Скачать -Android-Spinner-DropDownList-Example.zip (16 КБ)