Ich habe eine Tabelle für meine ContentProvider
in der folgenden Zeile erstellt:
static final String CREATE_DB_TABLE =
" CREATE TABLE " + CONTACTS_TABLE_NAME +
" (_id INTEGER PRIMARY KEY AUTOINCREMENT, " +
" pid TEXT NOT NULL, " +
" name TEXT NOT NULL,"+
"number TEXT NOT NULL);";
Es hat 4 Spalten. Jetzt möchte ich eine Spalte mit dem booleschen Wert true/false hinzufügen. Wie kann ich diese Anweisung hinzufügen/ändern, wenn ich eine boolean -Spalte mit dem Namen "status" hinzufügen muss.
Sie könnten so etwas verwenden:
Erstellen Sie Ihren Tisch:
static final String CREATE_DB_TABLE =
"CREATE TABLE " + CONTACTS_TABLE_NAME " +
" (_id INTEGER PRIMARY KEY AUTOINCREMENT," +
"..." + " flag INTEGER DEFAULT 0)";
holen Sie sich Ihren Wert als:
Boolean flag = (cursor.getInt(cursor.getColumnIndex("flag")) == 1);
Wie von M D erwähnt,
SQLite hat keine separate boolesche Speicherklasse. Stattdessen, Boolesche Werte werden als Ganzzahlen 0 (falsch) und 1 (wahr) gespeichert.
Verwenden Sie die folgende ALTER-Anweisung -
ALTER TABLE CREATE_DB_TABLE ADD status boolean NOT NULL default 0;
Dann können Sie den Cursor verwenden, um den erforderlichen Wert zu erhalten, und dann in den tatsächlichen Booleschen Wert konvertieren.
flag=cursor.getString(0).equals("1")
Sie können dieses Flag verwenden, um auf dem Benutzerbildschirm anzuzeigen.
Referenz: http://www.sqlite.org/datatype3.html
public enum Status{
TRUE,FALSE;
}
static final String CREATE_DB_TABLE =
" CREATE TABLE " + CONTACTS_TABLE_NAME +
" (_id INTEGER PRIMARY KEY AUTOINCREMENT, " +......
" booleanColumn INTEGER DEFAULT 0);";
// während des Einfügens
Übergeben Sie die Werte von Status.TRUE.ordinal () an die Datenbank und
// beim Abrufen
gegenprüfung mit dem Ordinalwert für den Status
Sqlite bietet keine Klasse zum Speichern boolescher Werte.
Sie können 0
für false
und 1
für true
verwenden. Sie müssen diese Werte dann konvertieren, nachdem Sie sie aus Ihrer Datenbank abgerufen haben.
leider unterstützt Android sqlite keinen booleschen Typ und Sie sollten stattdessen Integer verwenden