James
James

Reputation: 14091

How to get the selected item of Android Spinner?

How to get a selected item from a spinner in android?

Upvotes: 0

Views: 2710

Answers (3)

Balaji
Balaji

Reputation: 2026

Try this Code..

sp2.setOnItemSelectedListener(new OnItemSelectedListener()
 {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                    int arg2, long id) {
        // TODO Auto-generated method stub
        int selected_item_position = arg2;
        String selected_item=sp2.getSelectedItem().toString();

        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
        // TODO Auto-generated method stub

        }
 });

Upvotes: 0

xain
xain

Reputation: 13839

In your Activity:

mSpinner = (Spinner) findViewById(R.id.my_spinner);

// Define your adapter, in my case I have a class (SpinnerData) so I get an ID instead of the spinner's text 
ArrayAdapter<SpinnerData> myadapter = new ArrayAdapter<SpinnerData>(
  this, android.R.layout.simple_spinner_item, new SpinnerData [] {
  new SpinnerData("1","Item 1"),
  new SpinnerData("2","Item 2")
});

myadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    mSpinner.setAdapter(myadapter);
    mSpinner.setOnItemSelectedListener(this);

This is useful if you have other elements in the form that trigger the onItemSelected event:

    public void onItemSelected(AdapterView<?> parent, View view, int position, long id{
    SpinnerData sd;


    switch (parent.getId()) {

    case R.id.my_spinner:
        sd = (SpinnerData)mSpinner.getSelectedItem();
        // do something with sd.id
        break;

... }

As reference, the SpinnerData class:

public class SpinnerData {

public String id;
public String name;

public SpinnerData(String _id, String _name) {

    this.id = _id;
    this.name = _name;

}

public String toString() {
    return this.name;
}

}

Hope it helps.

Upvotes: 0

Paresh Mayani
Paresh Mayani

Reputation: 128428

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
            // your code here
        }

        @Override
        public void onNothingSelected(AdapterView<?> parentView) {
            // your code here
        }

    });

Note:

The documentation for the Spinner widget clearly states:

A spinner does not support item click events. Calling this 
method will raise an exception.

Better use OnItemSelectedListener() instead, as above.

Upvotes: 1

Related Questions