Eigene DB Query

  • Antworten:6
  • Bentwortet
Stefan S.
  • Forum-Beiträge: 560

14.03.2011, 14:06:11 via Website

Hi

Ich habe folgendes Problem:
Nachdem ich erfolgreich meine eigene DB erstellt und abgefüllt habe möchte ich den Inhalt in eine ListView abfüllen. Soweit die Idee...
Wenn ich nun aber einen SimpleCursorAdapter erstellen möchte

1SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.contact_entry, cursor, fields, new int[]{R.id.contactEntryText,R.id.contactEntryNumber});
erhalte ich immer einen ForceClose.

Mein Cursor ist nicht leer und wird folgendermassen abgefüllt
1Cursor favcontacts = db.query(ContactDatabase.TABLENAME,
2 new String[]{ContactDatabase.IDCOL, ContactDatabase.NAMECOL, ContactDatabase.NUMBERCOL},
3 null,null,null,null,null);
4 startManagingCursor(favcontacts);
5 return favcontacts;

Was genau mache ich hier falsch?

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

14.03.2011, 15:31:12 via Website

naja

bitte den logcat hier rein kopieren, dann tuen wir uns leichter. die hellseher sind eben leider auf urlaub ;)

swordiApps Blog - Website

Antworten
Stefan S.
  • Forum-Beiträge: 560

14.03.2011, 16:02:48 via Website

Ok. Ich habe die Zeile gefunden:
03-14 15:58:48.685: ERROR/AndroidRuntime(24979): java.lang.RuntimeException: Unable to start activity ComponentInfo{contacts.steffsworld.ch/contacts.steffsworld.ch.ContactsSync}: java.lang.IllegalArgumentException: column '_id' does not exist

Meine DB-Deklaration sieht so aus:
1CREATE TABLE Contact (_ID INTEGER PRIMARY KEY NOT NULL ,Name VARCHAR NOT NULL ,Number TEXT NOT NULL )

Ich greife auch nirgends auf eine Column _id zu sondern immer über meine Konstante IDCOL welche "_ID" ist.
Muss der PrimaryKey denn zwingend _id sein?

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

14.03.2011, 16:04:39 via Website

Stefan S.

Muss der PrimaryKey denn zwingend _id sein?

ich meine gelesen zu haben, dass du eine _id spalte brauchst beim simple cursor adapter.

swordiApps Blog - Website

Antworten
Stefan S.
  • Forum-Beiträge: 560

14.03.2011, 16:08:43 via Website

Markus Gursch
Stefan S.

Muss der PrimaryKey denn zwingend _id sein?

ich meine gelesen zu haben, dass du eine _id spalte brauchst beim simple cursor adapter.


Aaaaa. Verd...:angry:
Diese Zeile habe ich wohl überlesen...

Vielen Dank!

Antworten
Gelöschter Account
  • Forum-Beiträge: 294

14.03.2011, 20:07:46 via Website

Kurze Anmerkung:

Du brauchst keinen Primary Key namens _id - der SimpleCursorAdapter braucht nur eine Spalte _id im Cursor. Ein "select pk as _id ..." zum Beispiel reicht völlig.

Gruß
Harald

Antworten
Stefan S.
  • Forum-Beiträge: 560

14.03.2011, 20:21:29 via Website

Ok. Danke für den Tip.

Antworten