bug*_*gzy 6 android spinner android-widget
我收到了从spinner.getSelectedItem().toString()调用返回的文本'android.database.sqlite.SQLiteCursor@435b9ba0'.我不知道为什么.微调器绑定到SimpleCursorAdapter.
这是代码
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);
}
Run Code Online (Sandbox Code Playgroud)
和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>
Run Code Online (Sandbox Code Playgroud)
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" />
Run Code Online (Sandbox Code Playgroud)
spinner xml看起来像这样
<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>
Run Code Online (Sandbox Code Playgroud)
并且返回的光标是
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);
}
Run Code Online (Sandbox Code Playgroud)
微调器似乎正常工作.当我尝试保存时,这是使用spinner.getSelectedItem().toString()作为所选项的值传递的内容.
任何人都会在这里看到任何错误的错误.不知道该怎么办.
谢谢帕特里克
您的代码在编写时正常工作.Spinner
是一个AdapterView
.你连接它的适配器是SimpleCursorAdapter
.这意味着所选项目是Cursor
(位于Cursor结果集中与用户选择对应的项目).Cursor
有默认的实现toString()
,返回类似的东西android.database.sqlite.SQLiteCursor@435b9ba0
.
由于您没有告诉我们您要做什么,因此无法准确地为您提供建议.然而,无论你想要保存什么,都需要Cursor
从中获得getSelectedItem()
.