2017-01-09 6 views
0

私は音楽アプリを作成しています。カーソルを使ってリストビューに曲を表示します。カーソルから持続時間0の曲を削除する方法がわかりません。アンドロイドでカーソルが0の長さの曲を削除するには

これはリストビューのすべての曲を表示する私のコードです。

public MediaCursorAdapter(Context context, int layout, Cursor c) { 
     super(context, layout, c, 
       new String[]{MediaStore.MediaColumns.DISPLAY_NAME, MediaStore.MediaColumns.TITLE, MediaStore.Audio.AudioColumns.DURATION}, 
       new int[]{R.id.displayname, R.id.title, R.id.duration}); 
    } 

    @Override 
    public void bindView(View view, Context context, Cursor cursor) { 
     TextView title = (TextView) view.findViewById(R.id.title); 
     TextView name = (TextView) view.findViewById(R.id.displayname); 
     TextView duration = (TextView) view.findViewById(R.id.duration); 

     long durationInMs = Long.parseLong(cursor.getString(
       cursor.getColumnIndex(MediaStore.Audio.AudioColumns.DURATION))); 

     name.setText(cursor.getString(
        cursor.getColumnIndex(MediaStore.MediaColumns.DISPLAY_NAME))); 

     title.setText(cursor.getString(
        cursor.getColumnIndex(MediaStore.MediaColumns.TITLE))); 


     Duration d = new Duration(); 

     String durationInMin = d.convertDuration(durationInMs); 

     duration.setText("" + durationInMin); 

     view.setTag(cursor.getString(cursor.getColumnIndex(MediaStore.MediaColumns.DATA))); 
    } 

    @Override 
    public View newView(Context context, Cursor cursor, ViewGroup parent) { 
     LayoutInflater inflater = LayoutInflater.from(context); 
     View v = inflater.inflate(R.layout.listitem, parent, false); 

     bindView(v, context, cursor); 

     return v; 
    } 
+2

アダプタが本当にありませんアイテムを削除する場所(カーソルの行を削除することはできません)。最初にカーソルを取得するために使用したクエリに、継続時間<= 0のものを除外するWHERE句が含まれている方が良いでしょう。 – Karakuri

+0

ありがとうございました。出来た。 – Pedo

+0

ありがとうございました。出来た。 – Pedo

答えて

0

それは、このようなcontentResolver.query方法で句(私のコードでMediaStore.Audio.AudioColumns.DURATION +「> 0」)ここで追加することによって解決することができます。

cursor = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null,MediaStore.Audio.AudioColumns.DURATION+">0", null, sortOrder); 
関連する問題