読者です 読者をやめる 読者になる 読者になる

【Android】Spinnerを実装する

 

Spinner の実装方法です。

 

SpinnerとはHTMLでいうところリストボックスです。

 

 

f:id:stanleyblenz:20161016235403p:plain

 

 

f:id:stanleyblenz:20161016235420p:plain

 

 

 

strings.xml  ※スピナーに表示する内容です。

<resources>
  <string name="count_title">件数</string>
  <string-array name="count">
   <item>1件</item>
   <item>2件</item>
   <item>3件</item>
   <item>4件</item>
   <item>5件</item>
  </string-array>
</resources>

 

spinner_item.xml ※最初に見えている部分です。

<?xml version="1.0" encoding="utf-8"?>
  <TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/spinner_item"
    android:singleLine="true"
    android:layout_width="match_parent"
    android:layout_height="32dp"
    android:textColor="#000000"
    android:textSize="18dp"/>

 

spinner_dropdown_item.xml  ※スピナーを開いた部分です。(リストの部分)
<?xml version="1.0" encoding="UTF-8"?>
  <CheckedTextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/spinner_dropdown_item"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="10dp"
    android:textColor="#000000"
    android:textSize="18dp"/>

 

main.xml  ※スピナーの部品を定義

<LinearLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_gravity="center"
   android:padding="16dp">
  <Spinner
    android:id="@+id/count"
    android:layout_width="wrap_content"
    android:layout_height="50dp"
    android:spinnerMode="dialog"      ※ダイアログ型
    android:prompt="@string/count_title"/>  ※タイトル
</LinearLayout>

 

MainActivity.java ※スピナーの実装です。

ArrayAdapter adapter = ArrayAdapter.createFromResource(

                    getActivity(),                     R.array.count,                     android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner spinner = (Spinner)getActivity().findViewById(R.id.count);
spinner.setAdapter(adapter);

 

 

以上です。