嗨,我使用合并光标在我的列表视图中显示数据结果,我添加了一个索引器,它的所有功能都很好,但我注意到and它的ok显示了外部数据,之后又是and,但现在是内部数据,所以我的索引“工作”,但不像我想的那样,我知道mergecursor不能被排序,所以我想知道我能做一个rawquery吗?加入MediaStore.Audio.Media.INTERNAL_CONTENT_URI和MediaStore.Audio.Media.EXTERNAL_CONTENT_UR?怎么做呢?我想加入,然后由宋ASC进行排序。或者MediaStore.Audio.Media.DEFAULT_SORT_ORDER,或者如何将数组列表或其他集合转换为游标?
现行法典:
private Cursor getInternalAudioCursor(String selection,
String[] selectionArgs) {
return this.getContentResolver().query(
MediaStore.Audio.Media.INTERNAL_CONTENT_URI,
INTERNAL_COLUMNS,
selection,
selectionArgs,
MediaStore.Audio.Media.DEFAULT_SORT_ORDER);}
private Cursor getExternalAudioCursor(String selection,
String[] selectionArgs) {
return this.getContentResolver().query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
EXTERNAL_COLUMNS,
selection,
selectionArgs,
MediaStore.Audio.Media.DEFAULT_SORT_ORDER);}
Cursor c = new MergeCursor(new Cursor[] {
getExternalAudioCursor(selection, argsArray),
getInternalAudioCursor(selection, argsArray)});
startManagingCursor(c);发布于 2012-04-19 15:48:39
你不能做rawQuery,因为
MediaStore (实际上是MediaProvider)是一个ContentProvider,而不是一个SQLiteDatabase (尽管它位于抽象层下)--它并不是故意提供的SQLite操作,因为您可以有其他东西支持ContentProvider而不是SQLite数据库。internal和external是单独的数据库文件&分别访问。您不能构建引用另一个文件的查询(除非附加它们,因为您无法访问该低级别)您可以构建一个MatrixCursor,其中将两个源游标的数据按排序顺序排列。
https://stackoverflow.com/questions/10231659
复制相似问题