Пример 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);
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();
}
});
}
}
Файл: 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 КБ)