GROUP BY
CursorLoader のクエリを定義するにはどうすればよいですか?
a の 2 つのコンストラクターは、 1 つまたは , , ,のいずれかをCursorLoader
取ります。Context
Context
Uri
projection
selection
selectionArgs
sortOrder
しかし、いいえgroupBy
。
(Android 2.3 デバイスのサポート パッケージを使用しています)
GROUP BY
CursorLoader のクエリを定義するにはどうすればよいですか?
a の 2 つのコンストラクターは、 1 つまたは , , ,のいずれかをCursorLoader
取ります。Context
Context
Uri
projection
selection
selectionArgs
sortOrder
しかし、いいえgroupBy
。
(Android 2.3 デバイスのサポート パッケージを使用しています)
あまり...
特定のGROUPBY句に特定のURIを定義できます。
たとえば、性別でグループ化された可能性のあるテーブルmPersonTableがある場合は、次のURIを定義できます。
PERSON
PERSON/#
PERSON/GENDER
クエリを実行するときは、クエリを切り替えて、パラメータでグループを追加できるようにします。
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
String groupBy = null;
switch (mUriMatcher.match(uri)) {
case PERSON_ID:
...
break;
case PERSON_GENDER:
groupBy = GENDER_COLUMN;
case PERSON:
SQLiteQueryBuilder builder = new SQLiteQueryBuilder();
builder.setTables(mPersonTable);
builder.setProjectionMap(mProjectionMap);
return builder.query(db, projection, selection, selectionArgs, groupBy, having, sortOrder, limit);
default:
break;
}
}
実際、クエリに任意の種類のパラメータを渡すことができます
Obs .: UriMatcherを使用して、URIをクエリの実装と一致させます。
どうやら (これは少し恥ずかしいことですが)、ドキュメントの最初の行には、が をCursorLoader
照会してContentResolver
を取得することが明確に記載されていますCursor
。は手段を公開してContentResolver
いませんGROUP BY
が、そのCursorLoader
ような機能を公開することはできません。
したがって、私自身の質問に対する明白な答えは次のとおりです。