I am getting the text 'android.database.sqlite.SQLiteCursor@435b9ba0' returned from a spinner.getSelectedItem().toString() call. I'm not sure why. The spinner is tied to a SimpleCursorAdapter.
Here is the code
cCategories = (Cursor) myAdapter.getAllCategories();
this.startManagingCursor(cCategories);
SimpleCursorAdapter scaCategories = new SimpleCursorAdapter(this, R.layout.track_category_item,cCategories,new String[] {DBAdapter.KEY_CATEGORIES_NAME},new int[]{R.id.text1});
scaCategories.setDropDownViewResource(R.layout.track_category_dropdown_item);
mCatSpinner = (Spinner) findViewById(R.id.thecategory);
mCatSpinner.setAdapter(scaCategories);
if(mCatSpinner.isSelected() != true) {
mCatSpinner.setSelection(0);
}
and the xml track_category_item.xml
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@android:id/text1"
style="?android:attr/spinnerItemStyle"
android:ellipsize="marquee"
android:singleLine="true">
</TextView>
track_category_dropdown_item.xml
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text1"
style="?android:attr/spinnerDropDownItemStyle"
android:singleLine="true"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:ellipsize="marquee" />
The spinner xml looks like this
<Spinner
android:id="@+id/thecategory"
android:prompt="@string/SELECT_CATEGORY"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_x="15px"
android:layout_y="133px" >
</Spinner>
and the cursor being returned is
public Cursor getAllCategories()
{
return db.query(DATABASE_CATEGORIES_TABLE, new String[] {
KEY_CATEGORIES_ROWID,
KEY_CATEGORIES_NAME,
KEY_CATEGORIES_DEFAULT},
null,
null,
null,
null,
null);
}
The spinner appears to work properly. When I try to save this is what is passed as the value of the selected item using spinner.getSelectedItem().toString().
Anyone see anything blatently wrong here. not sure what to do.
thanks patrick
Your code is working as you wrote it.
Spinner
is anAdapterView
. The adapter you connected it to is aSimpleCursorAdapter
. This means that the selected item is aCursor
(positioned at the item in the Cursor's result set corresponding with the user's choice).Cursor
has the default implementation oftoString()
, which returns something likeandroid.database.sqlite.SQLiteCursor@435b9ba0
.Since you didn't tell us what you are trying to do, it is impossible to accurately advise you further. Whatever it is you want to save, however, needs to be pulled out of the
Cursor
you get fromgetSelectedItem()
.i can be bothered reading your context, but just wanted to briefly help. i have a column named after
DbHelper.KEY_COL
, and i am retrieving aDbHelper.KEY_COL
value at a specific row. perhaps some of my code would help: