【Android】【Spinner】プルダウンで項目を選択できるSpinner
ボタンをクリックするとアイテムのリストがプルダウンで表示されて、そこから項目を選ぶタイプのUI実装方法。
かなりわかりづらい。
シェイプ等を変えず背景色とフォント色のみ設定する場合に必要になるファイルは
Itemが選択されたときに呼ばれるリスナーをセットする。
各ファイルのコード
- ***.java
/** Spinnerの準備 */ ArrayAdapter<String> adapter_mode = new ArrayAdapter<String>(this, R.layout._cutom_spinner_item); adapter_mode.setDropDownViewResource(R.layout._custom_spinner_dropdown); adapter_mode.add("1.***"); adapter_mode.add("2.***"); adapter_mode.add("3.***"); final Spinner spinner_mode = (Spinner) findViewById(R.id.spinner_mode); spinner_mode.setAdapter(adapter_mode); // リスナーを登録 spinner_mode.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { Spinner spinner = (Spinner)adapterView; Spinner_Item = (String)spinner.getSelectedItem(); // Itemが選択されたときに実行するmethod sendModeSig(); } @Override public void onNothingSelected(AdapterView<?> adapterView) { } });
- _custom_spinner_item.xml
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android ="http://schemas.android.com/apk/res/android" style ="?android:attr/spinnerItemStyle" android:singleLine ="true" android:layout_width ="fill_parent" android:layout_height="fill_parent" android:textColor ="@android:color/white" android:backgroundTint="@android:color/white" android:gravity ="center" android:ellipsize ="marquee" android:textAppearance="@style/TextAppearance.AppCompat.Large" />
- _custom_spinner_dropdown.xml
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android ="http://schemas.android.com/apk/res/android" style ="?android:attr/spinnerItemStyle" android:singleLine ="true" android:layout_width ="fill_parent" android:layout_height="fill_parent" android:textColor ="@android:color/white" android:backgroundTint="@android:color/white" android:gravity ="center" android:ellipsize ="marquee" android:textAppearance="@style/TextAppearance.AppCompat.Large" />
こちらが大変参考になりました。感謝。