Spinnerの選択肢を動的に変えたい場合の簡単な方法は?
Spinnerの選択肢が静的で固定でいい場合の一番簡単な方法は、以前紹介しました。
Spinnerの一番簡単な使い方
という事で、、、例えば、もしこの方法でSpinnerを配置して、
動的に選択肢を変えたいSpinnerも、同じようなレイアウトで配置したい!
という場合の方法を紹介します。
基本的な説明は省きます。
あくまで一例ですが、以下のようなメソッドで実現できます。
private void setSpinner(Spinner spinner,String[] arr){
ArrayAdapter
new ArrayAdapter
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が出来上がります。
Leave a Reply