Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Creating multiple onItemSelectedListeners

I'm working on creating an android activity that has two spinners in it. I understand how to implement the onItemSelectedListener for one spinner, using the onItemSelected call back function:

    public void onItemSelected(AdapterView<?> parent, View view,
                           int pos, long id) {
    Spinner spinner = (Spinner) findViewById(R.id.spinnerOneOfTwo);
    spinner.setOnItemSelectedListener(this);
    //do things with selection...
}

However, what if I have multiple spinners? It seems to me that I would need a separate function, but since both spinners are set to call back onItemSelected() I can't take that approach. Is there any way to tell which spinner is calling the onItemSelected() function? Perhaps one of the parameters keys on which spinner is making the call? Then I could set its ID as the parameter for my spinner variable's ID?

I know there is a way (I'm definitely not the only one putting multiple spinners in one activity), any hints are much appreciated!

like image 224
Freestyle076 Avatar asked Nov 30 '22 12:11

Freestyle076


1 Answers

Let 2 of your Spinners implements the same OnItemSelectedListener and try this:

public void onItemSelected(AdapterView<?> parent, View view,
            int pos, long id) {
        switch (parent.getId()) {
        case R.id.your_spinner_1_id:
            // do stuffs with you spinner 1
            break;
        case R.id.your_spinner_2_id:
            // do stuffs with you spinner 2
            break;
        default:
            break;
        }
    }

Hope this helps.

like image 126
user2652394 Avatar answered Dec 10 '22 23:12

user2652394