0

Je construis un lecteur de musique et les morceaux sont affichés plusieurs fois dans logcat. Je veux afficher les chansons dans la liste. Voici mon activité principale:Impossible d'obtenir la liste audio du fournisseur de contenu

public class MainActivity extends AppCompatActivity { 
    List<String> list=new ArrayList<>(); 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      File s= Environment.getExternalStorageDirectory(); 
      String[] as={"is_music","title"}; 
      Uri musicUri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; 
      Cursor musicCursor = getContentResolver().query(musicUri,as, null, null,null); 
      String[] a=musicCursor.getColumnNames(); 
      musicCursor.moveToFirst(); 
      Log.i ("fjfj",""+musicCursor.getCount()); 
      for(int i=0;i<musicCursor.getCount();i++){   
       list.add(musicCursor.getString(musicCursor.getColumnIndex("title"))); 
       //Log.i("position",musicCursor.getPosition()+list.get(musicCursor.getPosition())); 
       musicCursor.moveToNext();   
       Log.i("column",i+" "+list.get(i)); 
      } 

     } 
    } 

03-08 21: 17: 26,672 2070-2070/com.example.android.alpha1 I/colonne: 0 Bienvenue à New York 03-08 21:17 : 26.676 2070-2070/com.example.android.alpha1 I/colonne: 1 Espace vide 03-08 21: 17: 26.688 2070-2070/com.example.android.alpha1 I/colonne: 2 Style 03- 08 21: 17: 26.688 2070-2070/com.example.android.alpha1 I/colonne: 3 Out Of The Woods 03-08 21: 17: 26.692 2070-2070/com.example.android.alpha1 I/colonne : 4 Tout ce que vous deviez faire était Restez 03-08 21: 17: 26.696 2070-2070/com.example.android.alpha1 I/col umn: 5 Secouez-le 03-08 21: 17: 26.696 2070-2070/com.example.android.alpha1 I/colonne: 6 Je vous souhaite 03-08 21: 17: 26.700 2070-2070/com .example.android.alpha1 I/colonne: 7 Bad Blood 03-08 21: 17: 26.704 2070-2070/com.example.android.alpha1 I/colonne: 8 Wildest Rêves 03-08 21: 17: 26.704 2070 -2070/com.example.android.alpha1 I/colonne: 9 Comment vous obtenez la fille 03-08 21: 17: 26.712 2070-2070/com.example.android.alpha1 I/colonne: 10 This Love 03- 08 21: 17: 26.712 2070-2070/com.example.android.alpha1 I/colonne: 11 Je sais Places 03-08 21: 17: 26.712 2070-2070/com.example.android.alpha1 I/colonne : 12 Nettoyer 03-08 21: 17: 26.720 2070-2070/com.example.android.alpha1 I/colonne: 13 Wonderland 03-08 21: 17: 26.724 2070-2070/com.example.android.alpha1 I/colonne: 14 Vous êtes In Love 03-08 21: 17: 26.728 2070-2070/com. example.android.alpha1 I/colonne: 15 New Romantics 03-08 21: 17: 26.732 2070-2070/com.example.android.alpha1 I/colonne: 16 I Know Places (Voice Memo) 03-08 21 : 17: 26.744 2070-2070/com.example.android.alpha1 I/colonne: 17 Je vous souhaite (mémo vocal) 03-08 21: 17: 26.748 2070-2070/com.example.android.alpha1 I/colonne: 18 Espace vide (Voice Memo) 03-08 21: 17: 26.752 2070-2070/com.example.android.alpha1 I/colonne: 19 Bienvenue à New York 03-08 21: 17: 26.752 2070 -2070/com.example.android.alpha1 I/colonne: 20 Espace vide 03-08 21: 17: 26.756 2070-2070/com.example.android.alpha1 I/colonne: 21 Style 03-08 21: 17: 26.760 2070-2070/com.example.android.alpha1 I/colonne: 22 Out Of The Woods 03-08 21: 17: 26.764 2070-2070/com.example.android.alpha1 I/colonne: 23 Tout ce que vous deviez faire Was Stay 03-08 21: 17: 26.764 2070-2070/com. example.android.alpha1 I/colonne: 24 Shake It Off 03-08 21: 17: 26,764 2070-2070/com.example.android.alpha1 I/colonne: 25 Je souhaite que vous

+0

http://www.vogella.com/tutorials/AndroidListView/article.html#cursor docs d'adaptateur de curseur devrait aider –

Répondre

1

Do de cette façon. Initialisez ArrayList et appelez une fonction dans onCreate().

Avant onCreate()

private ArrayList<String> songArrayList; 
private ListView listView; 

En OnCreate():

songArrayList = new ArrayList(); 
listview = (*Find view by Id *); 
getSongList(); 
// Now create and set adapter to listview. Use songArrayList. 

Fonction:

public void getSongList() 
{ 
    /** 
    * All the audio files can be accessed using the below initialised musicUri. 
    * And there is a cursor to iterate over each and every column. 
    */ 
    ContentResolver contentResolver = getActivity().getContentResolver(); 
    Uri musicUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; 
    Cursor musicCursor = contentResolver.query(musicUri, null, null, null, null, null); 

    // If cursor is not null 
    if(musicCursor != null && musicCursor.moveToFirst()) 
    { 
     //get Columns 
     int titleColumn = musicCursor.getColumnIndex(MediaStore.Audio.Media.TITLE); 


     // Store the title, id and artist name in Song Array list. 
     do 
     { 
      String thisTitle = musicCursor.getString(titleColumn); 
      // Add the info to our array. 
      songArrayList.add(thisTitle); 
     } 
     while (musicCursor.moveToNext()); 

     // For best practices, close the cursor after use. 
     musicCursor.close(); 
    } 
} 

Ceci est un exemple échantillon prélevé de mon projet en cours en cours. J'espère que cela t'aides.