如何为我的CursorLoader定义GROUP BY查询?
CursorLoader的两个构造函数可以看到单个Context或Context,Uri,projection,selection,selectionArgs和sortOrder.
但没有groupBy.
(我正在使用Android 2.3设备的支持包)
解决方法
不是真的…
您可以为特定的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与查询实现相匹配.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。