0

こんにちは、マージカーソルを使用してリストビューにデータ結果を表示します。インデクサーを追加しましたが、すべて正常に機能していましたが、az が外部データを表示していることに気付きました。うまくいきます」が、私が望むようにはなりません。MediaStore.Audio.Media.INTERNAL_CONTENT_URI と MediaStore.Audio.Media.EXTERNAL_CONTENT_UR に参加するには ?? そしてどうやって?参加して、Song 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);
4

1 に答える 1

0

あなたはできないrawQueryので

  • MediaStore(実際にはMediaProvider)はContentProviderであり、SQLiteDatabase(その抽象化レイヤーの下にあります)ではありません-SQLiteデータベース以外のContentProviderをサポートする他のものを持つことができるため、これらのSQLite操作を意図的に提供しません。
  • internalexternalは別のデータベースファイルであり、別々にアクセスされます。別のファイルを参照するクエリを作成することはできません (その低レベルにアクセスできないためにできないものを添付しない限り)

両方のソース Cursor のデータを並べ替えた順序で配置するMatrixCursorを作成できます。

于 2012-04-19T15:48:39.997 に答える