【android】複数のスピナーを一つのメソッドで管理する方法

androidでは、javascriptのようにdatepickerのような機能がないので、同じような

作業をするには、スピナーを使う必要があります。

今回は一つの画面に複数のスピナーが必要だったので、switchを使って次のように

まとめることにしました。


public void createAdapter(){
ArrayAdapter<CharSequence> adapterlocation;
ArrayAdapter<CharSequence> adapterlanguage;
Spinner upperspinner;
Spinner underspinner;
upperspinner = (Spinner) findViewById(R.id.planets_spinner);
underspinner =(Spinner)findViewById(R.id.language_spinner);
adapterlocation = ArrayAdapter.createFromResource(
this,
R.array.planets_array,
R.layout.custom_spinner);
adapterlocation.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
upperspinner.setAdapter(adapterlocation);
upperspinner.setOnItemSelectedListener(this);
adapterlanguage = ArrayAdapter.createFromResource(
this,
R.array.language_array,
R.layout.custom_spinner);
adapterlanguage.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
underspinner.setAdapter(adapterlanguage);
underspinner.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position,
long id) {
Spinner spinner = (Spinner) parent;
switch(parent.getId()){
case R.id.planets_spinner :
String getPlanets = spinner.getSelectedItem().toString();
break;
case R.id.language_spinner :
String getLanguage = spinner.getSelectedItem().toString();
break;
}
}

 

onItemSelected内の引数parentは、スピナーのidになっています。

このparentを使うことで識別することができます。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG