Spinner — drop-down список

| 02.06.2014

Рассмотрим пример создания выпадающего списка (drop-down) в Android. Данный элемент View имеет название Spinner. Список создается достаточно просто. Большую сложность для новичков обычно вызывает использование адаптера. Однако, возможно, пример, приведенный ниже сделает тему для вас более понятной.

Итак, создадим выпадающий список с выбором имен.

Создадим layout с элементом Spinner внутри. Кроме выпадающего списка пока сюда ничего помещать не будем, чтобы не усложнять пример.

res/layout/activity_main.java

1
2
3
4
5
6
7
8
9
10
11
12
13
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1" />
 
</LinearLayout>

Добавим файл со строковыми ресурсами. Нам необходим массив имен names.
res/values/strings.xml

1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="utf-8"?>
<resources>
 
    <string name="app_name">Spinner</string>        
    <string-array name="names">
        <item>Alex</item>
        <item>Andrew</item>
        <item>Nick</item>
    </string-array>
 
</resources>

Файл MainActivity.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package ru.androiddocs.spinner;
 
import android.support.v7.app.ActionBarActivity;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.os.Bundle;
 
 
public class MainActivity extends ActionBarActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        Spinner spin = (Spinner) findViewById(R.id.spinner1);
 
        ArrayAdapter<String> namesAdapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.names));
 
        namesAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spin.setAdapter(namesAdapter);
 
    }
}

Здесь:
1. находим наш Spinner методом findViewById()
2. создаем ArrayAdapter, передавая ему в параметрах контекст, layout для отображения списка (используем встроенный android.R.layout.simple_spinner_item и массив с именами (достаем из строковых ресурсов).
3. Методом setDropDownViewResource() задаем layout отображения списка, когда он появится (используем встроенный android.R.layout.simple_spinner_dropdown_item)
4. Передаем адаптер нашему Spinner методом setAdapter().

Запускаем наше приложение.

Spinner - drop-down список

Spinner - drop-down список

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*