Выпадающий список Spinner | OTUS

Выпадающий список Spinner

В этом уроке мы разберём создание выпадающего списка (Spinner) в Android Studio.

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

Создадим новое приложение в Android Studio, выбрав Start a new Android Studio project. Назовём проект SpinnerLesson (поле Application name). Домен компании назовём lessons.ru (поле Company domain). Выберем каталог расположения нашего проекта в поле Project location. И нажмём кнопку Next.

В следующем окне можно выбрать настройки в соответствии и изображением и нажать Next. Выберем Empty Activity (пустой активити) и нажмём Next. Имя главного Activity можно оставить так как есть, то есть MainActivity и нажать Finish. После создания проекта в открывшемся окне есть один Activity, это MainActivity. Теперь перейдём к представлению главного Activity, то есть к Activity_main.xml. Он представляет собой xml-файл и хранится в папке ресурсов res _в подпапке _layout.

Заменим всё содержимое activity_main.xml на следующее:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="ru.lessons.spinnerlesson.MainActivity">

    <Spinner
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/spAutoBrands"></Spinner>

</LinearLayout>

Где Spinner и есть тот самый выпадающий список.

Теперь перейдём к MainActivity и отредактируем его таким образом, чтобы его содержимое соответствовало следующему коду:

package ru.lessons.spinnerlesson;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity
{
    //Массив для заполнения списка
    private String[] autoBrands = {"Toyota", "Nissan", "BMW"};

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ArrayAdapter<String> autoBrandsAdapter = new ArrayAdapter<String>(this,
                                                     android.R.layout.simple_spinner_item, autoBrands);

        autoBrandsAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        //Находим выпадающий список по его id spAutoBrands
        Spinner spAutoBrands = (Spinner) findViewById(R.id.spAutoBrands);

        //Устанавливаем адаптер
        spAutoBrands.setAdapter(autoBrandsAdapter);

        //Устанавливаем обработчик события списка,
        //который будет срабатывать при выборе элемента списка
        spAutoBrands.setOnItemSelectedListener(onItemSelectedListener());
    }

    //Обработчик события списка
    AdapterView.OnItemSelectedListener onItemSelectedListener()
    {
        return new AdapterView.OnItemSelectedListener()
        {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
            {
                //Выводим на экран содержимое элемента списка
                Toast.makeText(getBaseContext(), parent.getSelectedItem().toString(), Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent)
            {

            }
        };
    }
}

Где строковый массив private String[] autoBrands = {«Toyota», «Nissan», «BMW»} – это пункты выпадающего списка. Функция onItemSelectedListener() – это обработчик события, который срабатывает при выборе элемента списка.

Toast.makeText(getBaseContext(), parent.getSelectedItem().toString(), Toast.LENGTH_SHORT).show() выводит содержимое выбранного элемента списка на экран. Первый параметр этой функции — это контекст, второй параметр — само сообщение, третий параметр — временной интервал, в течении которого сообщение будет находиться на экране.

Более подробно смотрите в видеоролике или в моем блоге.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто