将 Cursor 转换为 ContentValues 以便于数据库插入。
它说使用 getContentResolver(),但实际上并没有使用 CursorLoader
除了亚历克斯所说的之外,没有什么可以阻止您遍历Cursor
返回的内容,将它们放入ContentValue
s 中,然后将其插入(例如,插入不同的数据库)。
只是我脑海中的一个例子(简单Cursor
的两String
列):
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
if (cursor.moveToFirst()) {
ArrayList<ContentValues> values = new ArrayList<ContentValues>();
do {
ContentValues row = new ContentValues();
DatabaseUtils.cursorStringToContentValues(cursor, fieldFirstName, row);
DatabaseUtils.cursorStringToContentValues(cursor, fieldLastName, row);
values.add(row);
} while (cursor.moveToNext());
ContentValues[] cv = new ContentValues[values.size()];
values.toArray(cv);
getContentResolver().bulkInsert(CONTENT_NAMES, cv);
}
}
可能有更有效的方法来做到这一点(当然还有一些完整性检查),但这是我的第一个想法......