データベースを簡単に挿入できるように、カーソルをContentValuesに変換します。
getContentResolver()を使用するように指示されていますが、実際にはCursorLoaderを使用していません
Alexが言ったこと以外に、Cursor
返されたものを繰り返し処理し、それらをContentValue
sに入れてから、それを(たとえば、別のDBに)挿入することを妨げるものは何もありません。
私の頭のてっぺんからのほんの一例(Cursor
2String
列の単純なもの):
@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);
}
}
それを行うにはおそらくもっと効率的な方法があります(そして間違いなくいくつかの整合性チェック)が、それが私の最初の考えでした...