2011-11-19 2 views
0

Je suis en train d'ajouter les noms des chansons à partir d'une carte SD sur le téléphone à une vue de la liste mais je reçois une NullPointerException ...listview Android ajouter à la liste

private void updateList() { 
    String[] proj = { MediaStore.Audio.Media._ID, 
         MediaStore.Audio.Media.DATA, 
         MediaStore.Audio.Media.DISPLAY_NAME, 
         MediaStore.Audio.Artists.ARTIST }; 

    Cursor tempCursor = managedQuery(
      MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, 
      proj, 
      null, 
      null, 
      null); 

    int col_index = -1; 
    int numSongs = tempCursor.getCount(); 

    while (tempCursor.moveToNext()) { 
     col_index = tempCursor.getColumnIndexOrThrow(
       MediaStore.Audio.Artists.ARTIST); 

     songname.add(tempCursor.getString(col_index)); 
    } 

    ArrayAdapter<String> songss = new ArrayAdapter<String>(
      this, R.id.songs, songname); 
    setListAdapter(songss); 
} 
+2

* Où * recevez-vous l'exception? Qu'est-ce que 'songname', et où est-il initialisé? –

Répondre

0

Je suis tout simplement obtenir des données de chansons de carte SD comme suit ... Il peut vous être utile

Cursor cursor = getContentResolver().query(
        MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, 
        null); 

    if(cursor.moveToFirst()) 
{ 
       for(int j=0;j<cursor.getCount();j++) 
       { 


          int ALBUM_ID = cursor.getInt((cursor 
            .getColumnIndex(MediaStore.Audio.AlbumColumns.ALBUM_ID))); 
          String album_url = null; 

          Uri sArtworkUri = Uri 
            .parse("content://media/external/audio/albumart"); 
          Uri uri = ContentUris.withAppendedId(sArtworkUri, ALBUM_ID); 
          album_url = uri.toString(); 
          ContentResolver res = this.getContentResolver(); 
          // Album 
          String album_name = cursor.getString(cursor 
            .getColumnIndex(MediaStore.Audio.AlbumColumns.ALBUM)); 

          String year = cursor.getString(cursor 
            .getColumnIndex(MediaStore.Audio.AudioColumns.YEAR)); 
    //     String year = cursor.getString(cursor 
    //        .getColumnIndex(MediaStore.Audio.AlbumColumns.NUMBER_OF_SONGS)); 


          // artist 
          String artist_name = cursor.getString(cursor 
            .getColumnIndex(MediaStore.Audio.ArtistColumns.ARTIST)); 
          // displayname 
          String DisplayName = cursor.getString(cursor 
            .getColumnIndex(MediaStore.MediaColumns.DISPLAY_NAME)); 

// title 

String Title = cursor.getString(cursor 
            .getColumnIndex(MediaStore.MediaColumns.TITLE)); 
} 
+0

Aimeriez-vous que l'on vous aide beaucoup si j'utilise ce code dans mon application? –

Questions connexes