SQLite
 sql >> Datenbank >  >> RDS >> SQLite

So erhalten Sie eine ID aus der Datenbank, wenn Sie auf ein Listenansichtselement in Android klicken

Sie fragen die _id nicht aus der Datenbank ab (nur die Spalte KEY_NAME2), daher können Sie sie nicht vom Adapter abrufen.

Diese Zeile:

Cursor cur = (Cursor) parent.getItemAtPosition(position);

ist völlig falsch. Sie versuchen, einen String umzuwandeln (der von ArrayAdapter<String> zurückgegeben wird zu einem Cursor, der niemals funktionieren kann.

Was Sie tun müssen, ist einen CursorAdapter zu verwenden (oder SimpleCursorAdapter ) für Ihre ListView. Der Cursor sollte mindestens nach _id und KEY_NAME2 fragen.

Mit diesem Adapter wird die getItem(int position) gibt einen auf die angeforderte Position gesetzten Cursor zurück. Dann brauchen Sie nur noch cursor.getInt(cursor.getColumnIndex("_id")) und du bist da.