How to set the selected item of Spinner by value, not by position?

485    Asked by Amitjaisawal in QA Testing , Asked on Jul 2, 2021

 I have a update view, where I need to pre-select the value stored in database for a Spinner.

I was having in mind something like this, but the Adapter has no indexOf method, so I am stuck.

void setSpinner(String value)
{
    int pos = getSpinnerField().getAdapter().indexOf(value);
    getSpinnerField().setSelection(pos);
}

Answered by Alastair McDade

To solve the android spinner set selected, assume your Spinner is named mSpinner, and it includes as one of its options: "any value".

To find and compare the position of "some value" in the Spinner use this:

String compareValue = "some value";
ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.select_state, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mSpinner.setAdapter(adapter);
if (compareValue != null) {
    int spinnerPosition = adapter.getPosition(compareValue);
    mSpinner.setSelection(spinnerPosition);
}

Your Answer

Interviews

Parent Categories