如何为我的CursorLoader定义GROUP BY查询?
CursorLoader的两个构造函数可以看到单个Context或Context,Uri,projection,selection,selectionArgs和sortOrder.
但没有groupBy.
解决方法
不是真的…
您可以为特定的GROUP BY子句定义特定的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,selectionArgs,groupBy,having,sortOrder,limit); default: break; } }
实际上,您可以将任何参数传递给您的查询
Obs .:使用UriMatcher将uri与查询实现相匹配.