android.database.sqlite.SQLiteCursor@435b9ba0
Ich bin immer der text 'android.database.sqlite.SQLiteCursor@435b9ba0' nach der Rückkehr von einem spinner.getSelectedItem().toString () - Aufruf. Ich bin mir nicht sicher, warum. Der spinner ist gebunden an einen SimpleCursorAdapter.
Hier ist der 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);
}
und die 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" />
Spinner xml sieht wie folgt aus
<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>
und der cursor, der zurückgegeben wird,
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);
}
Den spinner angezeigt wird, um richtig zu arbeiten. Wenn ich versuche zu speichern, dies ist, was übergeben wird, als Wert des ausgewählten Elements mit spinner.getSelectedItem().toString().
Jemand etwas sehen blatently hier falsch. nicht sicher, was zu tun ist.
Dank
patrick
- Dieser war ordnungsgemäß mit einem ArrayAdapter. Der Wert übergeben, dann war der text, der der Kategorie (geschäftlich, oder privat).Bedeutet die Tatsache, dass ich mit einem SimpleCursorAdapter ändern, wie der Wert übergeben wird?
InformationsquelleAutor bugzy | 2010-01-16
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein code so funktioniert, wie Sie es geschrieben hat.
Spinner
ist einAdapterView
. Der adapter angeschlossen ist einSimpleCursorAdapter
. Dies bedeutet, dass der ausgewählte Artikel ist einCursor
(positioniert auf das Element in der Cursor-Ergebnismenge mit dem entsprechenden user ' s choice).Cursor
hat die default-Implementierung vontoString()
gibt so etwas wieandroid.database.sqlite.SQLiteCursor@435b9ba0
.Da Sie nicht sagen uns, was Sie zu tun versuchen, ist es unmöglich, genau zu beraten, Ihnen weiter. Was auch immer es ist, die Sie speichern möchten, muss allerdings gezogen werden aus der
Cursor
erhalten Sie vongetSelectedItem()
.query()
Sie nennen müsstegetString(1)
auf dieCursor
, um wieder die 2. Spalte...vorausgesetztKEY_CATEGORIES_NAME
ist der Wert, den Sie suchen.ich kann gestört werden, Lesen Sie den Kontext, aber wollte nur kurz helfen.
ich habe eine Spalte benannt nach
DbHelper.KEY_COL
, und ich bin abrufen einerDbHelper.KEY_COL
Wert auf eine bestimmte Zeile.vielleicht haben einige mein code würde helfen: