Gibt es eine Möglichkeit, das ContentValues-Objekt aus der SQLite-Datei zu erhalten?
Es ist sehr nützlich, dass wir ContentValues in die DB einfügen können, und es sollte noch nützlicher sein, den Lebenslauf von dort zu erhalten.
Gibt es eine Möglichkeit, das ContentValues-Objekt aus der SQLite-Datei zu erhalten?
Es ist sehr nützlich, dass wir ContentValues in die DB einfügen können, und es sollte noch nützlicher sein, den Lebenslauf von dort zu erhalten.
Sie können die Methode cursorRowToContentValues(Cursor cursor, ContentValues values) der DatabaseUtils Klasse.
ejemplo
Cursor c = db.query(tableName,
tableColumn,
where,
whereArgs,
groupBy,
having,
orderBy);
ArrayList<ContentValues> retVal = new ArrayList<ContentValues>();
ContentValues map;
if(c.moveToFirst()) {
do {
map = new ContentValues();
DatabaseUtils.cursorRowToContentValues(c, map);
retVal.add(map);
} while(c.moveToNext());
}
c.close();
Ich habe meine eigene Version des DatabaseUtils.cursorRowToContentValues
Methode, die David-mu erwähnt hat, um zu vermeiden ein Fehler beim Parsen von Booleschen Werten . Sie fragt die Cursor
um Ints und Floats auf der Grundlage der Typen in der SQL-Datenbank zu analysieren, anstatt sie beim Aufruf der Methoden in ContentValues
.
public static ContentValues cursorRowToContentValues(Cursor cursor) {
ContentValues values = new ContentValues();
String[] columns = cursor.getColumnNames();
int length = columns.length;
for (int i = 0; i < length; i++) {
switch (cursor.getType(i)) {
case Cursor.FIELD_TYPE_NULL:
values.putNull(columns[i]);
break;
case Cursor.FIELD_TYPE_INTEGER:
values.put(columns[i], cursor.getLong(i));
break;
case Cursor.FIELD_TYPE_FLOAT:
values.put(columns[i], cursor.getDouble(i));
break;
case Cursor.FIELD_TYPE_STRING:
values.put(columns[i], cursor.getString(i));
break;
case Cursor.FIELD_TYPE_BLOB:
values.put(columns[i], cursor.getBlob(i));
break;
}
}
return values;
}
Sie können gehen zu thenewboston es gibt ein Tutorial für SQLite (und die Verwendung von ContentValues) von 111-124 :D
Wie auch immer, das, was er über ContentValues gelehrt hat, ist in der 117.
Viel Glück :D
PS: Aber er benutzt auch einen Cursor :)
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.