Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Multiple spinners and onItemSelected

I have two spinners that trigger the onItemSelected event. The question is How can I know which one triggered such event ? So far I tried:

 public void onItemSelected(AdapterView<?> parent, View view, int position, long id)  {      Log.d("form","onitemselected");     switch (view.getId()) {     case R.id.region_spinner:         Region r = (Region)sregions.getSelectedItem();         Log.d("form","regionid:" + r.id);         break;     case R.id.state_spinner:         Log.d("form","state id:");         break;     } 

But only the first Log is displayed, so there's no match in the switch.

like image 875
xain Avatar asked Feb 25 '11 15:02

xain


2 Answers

use:

switch(parent.getId()) {     ... } 

instead is what you need. The view in your parameter is the actual 'row' (i.e. the clicked child of spinner item), and the parent is the actual 'spinner' that you are after.

like image 179
xandy Avatar answered Sep 20 '22 18:09

xandy


Spinner is a subclass of AdapterView. The parent object passed into the method is the spinner in which the item was selected.

like image 42
Jems Avatar answered Sep 20 '22 18:09

Jems