2011-11-20 143 views
0

當我運行我的課程時,列表視圖首次填充了一首歌曲,但自那時起我添加了歌曲,並且它們不會添加到列表視圖中,只有第一個歌曲在那裏。我認爲我的活動在每次關閉時都不會重新啓動。這裏是我的更新方法:ListView不會更新

public void updatelist() { 

    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))); 
      int pathcolumn = cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA); 
      String path1 = cursor.getString(pathcolumn); 
      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)); 

      // display name 
      String DisplayName = cursor.getString(cursor.getColumnIndex(MediaStore.MediaColumns.DISPLAY_NAME)); 

      //title 
      String Title = cursor.getString(cursor.getColumnIndex(MediaStore.MediaColumns.TITLE)); 

      songtitle.add(Title); 
      artistname.add(artist_name); 
      albumname.add(album_name); 
      path.add(path1); 
     } 
    } 

    adapter = new ArrayAdapter<String>(this,R.layout.song,songtitle); 
    setListAdapter(adapter); 
} 

這裏是我破壞方法

@Override 
protected void onDestroy() { 
    super.onDestroy(); 
adapter.clear(); 
} 

謝謝您的幫助。

+0

如果您想在每次關閉應用程序時刷新列表,請嘗試清除onPause()中的適配器,因爲onDestroy()將在操作系統想要終止應用程序時調用,而不是在用戶關閉時調用應用程序下降。 – Urban

回答