Unable to get selected item text from a spinner

966 Views Asked by At

In my application I have a spinner that displays a number of spending periods (weekly, bi-weekly, monthly, etc) and I filled it using a SimpleCursorAdapter because those periods are kept in the database. Here is how I implemented it:

Cursor spendingPeriodCursor = dataSource.getSpendingPeriods();
SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, spendingPeriodCursor, fromColumns, toColumns);
mAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mSpendingSpinner.setAdapter(mAdapter);

The spinner populates, and at the end of the activity I try to get the selected item like this:

// Get spending period description:
String spendingDesc = mSpendingSpinner.getSelectedItem().toString();

But it doesn't return the actual string value. It looks like a get a string representation of part of the cursor:

android.database.sqlite.SQLiteCursor@410dfae8

What do I have to do to get the actual text of the selected item?

2

There are 2 best solutions below

1
On BEST ANSWER
Cursor cursor = (Cursor) mSpendingSpinner.getSelectedItem();    
String text = cursor.getString(cursor.getColumnIndex("my_column_name"));
0
On

1) Well, with will be enough with:

String spendingDesc = mSpendingSpinner.getSelectedItem().toString();

2) but you can try too:

mSpendingSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {

        public void onItemSelected(AdapterView<?> parent, View arg1,
                int pos, long arg3) {
                String spendingDesc= parent.getSelectedItem().toString();
        }
 }

3) or

Cursor cursor = (Cursor) mSpendingSpinner.getSelectedItem();
String text = cursor.getString(cursor.getColumnIndex("COLUN_NAME"));