LoginSignup
10
8

More than 3 years have passed since last update.

[ Android ] プルダウンの実装方法

Posted at

今回はAndroidにおけるプルダウンの表示の仕方を記す。

プルダウンとは

複数の候補から選択する際、よく見かける。以下がその例である。
スクリーンショット (153).png

実装

実装方法は簡単である。まずxmlファイルにSpinnerを追加する。もちろん幅や高さは好きにしてよい。

<Spinner
    android:id="@+id/spinner"
    android:layout_width="149dp"
    android:layout_height="wrap_content"
    android:layout_marginStart="100dp"
    android:layout_marginTop="10dp" />

次にjavaファイルにプログラムを書く。
こちらではArrayAdapterクラスを用いて、Adapterを生成する。

<Spinner
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

次にAdapterにプルダウンの選択肢を追加する。

adapter.add("A型");
adapter.add("B型");
adapter.add("AB型");
adapter.add("O型");

そしてSpinnerにAdapterをセットしてプルダウンの完成である。

Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinner.setAdapter(adapter);

サンプル

プルダウンで選択した後、ボタン押下により、選択した内容が表示されるプログラムを実装してみた。

activity_main.xml

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

    <Spinner
        android:id="@+id/spinner"
        android:layout_width="149dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="100dp"
        android:layout_marginTop="10dp" />

    <Button
        android:id="@+id/button"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="100dp"
        android:layout_marginTop="10dp"
        android:text="選択した血液型表示" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="TextView" />

</LinearLayout>

MainActivity.java

public class MainActivity extends AppCompatActivity {

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

        TextView textView = findViewById(R.id.textView);

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        adapter.add("A型");
        adapter.add("B型");
        adapter.add("AB型");
        adapter.add("O型");
        Spinner spinner = (Spinner) findViewById(R.id.spinner);
        spinner.setAdapter(adapter);

        final Button imageProductButton = (Button) findViewById(R.id.button);
        imageProductButton.setOnClickListener((View view2) -> {
            String selected = (String) spinner.getSelectedItem();
            textView.setText(selected);
        });
    }
}

結果

成功である。
スクリーンショット (155).png

10
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
8