Multiple spinners and onItemSelected

xain picture xain · Feb 25, 2011 · Viewed 26.4k times · Source

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.

Answer

xandy picture xandy · Feb 25, 2011

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.