2013-08-12 3 views
2

Comment utiliser un curseur dans un fragment? Voici l'extrait d'un curseur que je veux installer, mais il dit ManagedQuery est indéfini:Curseur pour listview dans un fragment

Fragment1.java

private List<String> getMp3FilesFromSDCard() { 
    //here we get the list of songs stored on the SD card and we update our singleton class  
     List<String> result = new ArrayList<String>(); 

     SingletonPlaylist playlist; 

     playlist = SingletonPlaylist.getInstance(); 

     Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; 
     Cursor cursor; 
     String[] projection = 
     { 
      MediaStore.Audio.Media._ID, 
      MediaStore.Audio.Media.ALBUM, 
      MediaStore.Audio.Media.ARTIST, 
      MediaStore.Audio.Media.TITLE, 
      MediaStore.Audio.Media.DATA, 
      MediaStore.Audio.Media.DISPLAY_NAME 
     }; 

     String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0"; 


     cursor = this.managedQuery(uri, projection, selection, null, null); 

     cursor.moveToFirst(); 

     while (cursor.moveToNext()) 
     { 
      result.add(cursor.getString(5)); 
      playlist.addSong(new Song(cursor.getString(0),cursor.getString(1),cursor.getString(2),cursor.getString(3),cursor.getString(4),cursor.getString(5))); 
     } 


     return result; 
    } 

Comment puis-je résoudre ce problème?

+0

ManagedQuery est dépréciée depuis l'API 11. Vous pouvez en savoir plus [ici ] (http://www.androiddesignpatterns.com/2012/07/loaders-and-loadermanager-background.html) – mt0s

Répondre

6

Essayez cette ligne Code:

getActivity().getContentResolver().query(uri, projection, selection, selectionArgs, sortOrder) 

Hope it helps !!

+0

Il dit: La méthode getContentResolver() est indéfinie pour le type Fragment1 –

+0

essayez le code édité. –

1

La meilleure façon d'utiliser listview avec adaptateur curseur est d'utiliser Loaders

Il vous permet de gérer le curseur par fragment et faisant requête en arrière-plan

Questions connexes