0
メモリ内に作成されたデータベースを使用してコンテンツプロバイダからカーソルを取得することができます。私の活動では、どのように私は次のように私は、メモリ内のデータベースを作成
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
final SQLiteDatabase db = myDb.getReadableDatabase();
Cursor retCursor;
switch (sUriMatcher.match(uri)) {
case LABEL:
retCursor = db.query(
IOContract.IoEntry.TABLE_NAME,
projection,
selection,
selectionArgs,
null,
null,
sortOrder
);
break;
default:
throw new UnsupportedOperationException("Unknown uri: " + uri);
}
カーソルは次のとおりです。
Cursor c = contentResolver.query(cpUri, null, selection, argms, null);
DATABASE_NAMEを使用してデータベースを作成すると、データベースがディスク上に作成され、カーソルが戻されます。
public DbIoDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// super(context, null, null, DATABASE_VERSION);
this.myContext = context.getApplicationContext();
}
私はnullを使用してメモリにそれを作成するとき、私はカーソル内のどの要素を取得していない - 返されたカーソルがnullではないですが。
public DbIoDatabaseHelper(Context context) {
// super(context, DATABASE_NAME, null, DATABASE_VERSION);
super(context, null, null, DATABASE_VERSION);
this.myContext = context.getApplicationContext();
}
データベースをメモリ内に作成されたとき、私は有効なカーソルを取得することができますし、私はそれをどのように行うことができます方法はありますか? ご協力いただければ幸いです。ありがとうございました。
データベースにデータを追加しましたか?データベースがメモリ内にあるときは、アプリケーションの実行間にデータを保存しません。つまり、データを追加する前のクエリは空になります。 – XGouchet