How to set Spinner Default by its Value instead of Position?


I have 1-50 records in the database. I am fetching those data using cursor and set those values to Spinner using Simple Cursor Adapter. Now what i need is i want to set one value say 39th value as default. But not by its position i want to set by its value.

I know how to set the spinner default by its position


will set the spinner to that value.

But i didn't have any idea about setting the spinner default by its value(text) in the database. I know the values in the database. For eg "books" is one of the value in the spinner. I need to set the spinner default as books.

Is there any possible way to do this?

This question is tagged with android spinner simplecursoradapter android-spinner

~ Asked on 2012-05-17 10:40:46

The Best Answer is


Finally, i solved the problem by using following way, in which the position of the spinner can be get by its string

private int getPostiton(String locationid,Cursor cursor)
    int i;
    for(i=0;i< cursor.getCount()-1;i++)

        String locationVal = cursor.getString(cursor.getColumnIndex(RoadMoveDataBase.LT_LOCATION));  
            position = i+1;  
            position = 0;

Calling the method

    Spinner location2 = (Spinner)findViewById(;
    int location2id = getPostiton(cursor.getString(3),cursor);

I hope it will help for some one..

~ Answered on 2012-06-11 14:30:54


If you are setting the spinner values by arraylist or array you can set the spinner's selection by using the index of the value.

String myString = "some value"; //the value you want the position for

ArrayAdapter myAdap = (ArrayAdapter) mySpinner.getAdapter(); //cast to an ArrayAdapter

int spinnerPosition = myAdap.getPosition(myString);

//set the default according to value

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

~ Answered on 2012-05-17 11:43:12

Most Viewed Questions: