android.database.sqlite。SQLiteCursor@435b9ba0
我得到了文本“android.database.sqlite”。SQLiteCursor@435b9ba0'从spinner.getSelectedItem().toString()调用返回。我不知道为什么。微调器与SimpleCorsorAdapter相连 这是密码android.database.sqlite。SQLiteCursor@435b9ba0,android,android-widget,spinner,Android,Android Widget,Spinner,我得到了文本“android.database.sqlite”。SQLiteCursor@435b9ba0'从spinner.getSelectedItem().toString()调用返回。我不知道为什么。微调器与SimpleCorsorAdapter相连 这是密码 cCategories = (Cursor) myAdapter.getAllCategories(); this.startManagingCursor(cCategories); SimpleCurs
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);
}
还有xml
track\u category\u 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>
微调器似乎工作正常。当我尝试保存时,这是使用spinner.getSelectedItem().toString()作为所选项目的值传递的内容
有人看到这里有什么明显的错误吗。不知道该怎么办
谢谢
patrick您编写的代码正在运行<代码>微调器是一个
适配器视图
。您将其连接到的适配器是一个SimpleCursorAdapter
。这意味着所选项目是一个光标
(位于与用户选择相对应的光标结果集中的项目)Cursor
的默认实现是toString()
,它返回类似于android.database.sqlite的内容。SQLiteCursor@435b9ba0
既然你没有告诉我们你想做什么,就不可能准确地给你进一步的建议。但是,无论您想保存什么,都需要从
getSelectedItem()
中获取的光标中拉出,我可能不想阅读您的上下文,但只是想简单地提供帮助。
我有一个以DbHelper.KEY\u COL
命名的列,我正在检索特定行中的DbHelper.KEY\u COL
值。
也许我的一些代码会有所帮助:
Cursor colCur=(Cursor)spCols.getSelectedItem();
String col=colCur.getString(colCur.getColumnIndex(DbHelper.KEY_COL));
这在ArrayAdapter中正常工作。然后传递的值是类别(业务或个人)的文本。我使用SimpleCursorAdapter的事实是否会改变值传递的方式?谢谢Commonware,我想您可能已经回答了我的问题。我只是尝试获取所选项目的值,并将其保存到数据库表中。最初,我使用ArrayAdapter填充微调器。该数组是一个单元素数组,包含两个类别(“业务”、“个人”)。这在传递字符串时起作用。所以你说我需要做一些额外的编码来根据传递的微调器从光标定位实际的categoryname。GetSelectEditePosition()?谢谢,帕特里克。给定您的query()
,您需要在光标上调用getString(1)
,以返回第二列…假设KEY\u CATEGORIES\u NAME
是您搜索的值。
<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>
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);
}
Cursor colCur=(Cursor)spCols.getSelectedItem();
String col=colCur.getString(colCur.getColumnIndex(DbHelper.KEY_COL));