mucchinのAndroid戦記

Spinnerの選択肢を動的にしたいときの一番簡単な方法

Spinnerの選択肢を動的に変えたい場合の簡単な方法は?

Spinnerの選択肢が静的で固定でいい場合の一番簡単な方法は、以前紹介しました。
Spinnerの一番簡単な使い方
という事で、、、例えば、もしこの方法でSpinnerを配置して、
動的に選択肢を変えたいSpinnerも、同じようなレイアウトで配置したい!
という場合の方法を紹介します。


基本的な説明は省きます。
あくまで一例ですが、以下のようなメソッドで実現できます。

private void setSpinner(Spinner spinner,String[] arr){
  ArrayAdapter adapter =
    new ArrayAdapter
(this, android.R.layout.simple_spinner_item, arr);
  adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  spinner.setAdapter(adapter);
}


第一引数は、選択肢を設定したいSpinnerのインスタンスです。
第二引数は、設定したい選択肢の文字列を格納したString型の配列です。

第一引数のSpinnerは、おそらくfindViewById()で取ってきたSpinnerを渡すのが一般的ですかね。
第二引数の選択肢の生成方法は、それぞれのアプリによって違ってくるので、なんともいえませんが、汎用的に使えるように、上記のようなメソッドをサンプルとして紹介しました。

ポイントとしては2つ。
一つ目は、ArrayAdapterのインスタンスの生成時のコンストラクタの第2引数に、以下を設定するという点です。
android.R.layout.simple_spinner_item

二つ目は、adapter.setDropDownViewResource()というメソッドで、以下を設定するという点です。
android.R.layout.simple_spinner_dropdown_item

これで、Spinnerの一番簡単な使い方で紹介したようなSpinnerと同じレイアウトのSpinnerが出来上がります。


スポンサーリンク

URL :
TRACKBACK URL :

Leave a Reply

*
*
* (公開されません)

CAPTCHA


*

Return Top