Spinnerでドロップダウンリストを作る
dialogモード
dropdownモード
機能
- ドロップダウンリストでアイテム選択 → テキストビューに表示
ポイント
- spinnerModeプロパティで選択肢の表示方法を選択できる
- ArrayAdapterでspinnerにアイテムを登録する
必要なファイル
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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" tools:context="com.example.orisa.myspinner1.MainActivity"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:text="Select AM/PM" android:textAppearance="@android:style/TextAppearance.Material.Medium" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Spinner android:id="@+id/spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView" android:layout_centerHorizontal="true" android:layout_marginTop="10dp" /> <TextView android:id="@+id/showTv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/spinner" android:layout_centerHorizontal="true" android:layout_marginTop="50dp" /> </RelativeLayout>
MainActivity.java
package com.example.orisa.myspinner1; 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.TextView; import java.lang.reflect.Array; public class MainActivity extends AppCompatActivity { //Spinner変数 Spinner spinner; String[] items = {"AM", "PM"}; //部品の変数 TextView showTv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //部品の取得 showTv = (TextView)findViewById(R.id.showTv); spinner = (Spinner)findViewById(R.id.spinner); //ArrayAdapterを設定 ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_dropdown_item, items); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //spinnerにadapterを設定 spinner.setAdapter(adapter); //リスナーを登録 spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { Spinner spinner = (Spinner) parent; String str = (String)spinner.getSelectedItem(); showTv.setText(str); } @Override public void onNothingSelected(AdapterView<?> parent) { showTv.setText("nothing selected"); } }); } }