android.database.sqlite.SQLiteCursor@435b9ba0

半城伤御伤魂 提交于 2019-12-19 18:58:13

问题


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


回答1:


Your code is working as you wrote it. Spinner is an AdapterView. The adapter you connected it to is a SimpleCursorAdapter. This means that the selected item is a Cursor (positioned at the item in the Cursor's result set corresponding with the user's choice). Cursor has the default implementation of toString(), which returns something like android.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 from getSelectedItem().




回答2:


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 a DbHelper.KEY_COL value at a specific row. perhaps some of my code would help:

Cursor colCur=(Cursor)spCols.getSelectedItem();
String col=colCur.getString(colCur.getColumnIndex(DbHelper.KEY_COL));


来源:https://stackoverflow.com/questions/2075762/android-database-sqlite-sqlitecursor435b9ba0

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!