-1
我写了这段代码,但是当我启动应用程序时,它不幸停止了。我正在使用Android Studio。如何在列表视图中获取SD卡歌曲并在android中显示在列表视图中?
public class AllMusicDemo extends AppCompatActivity {
String []album;
String []name;
String []concat;
ListView listmusic;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_all_music_demo);
listmusic= (ListView) findViewById(R.id.listmusic);
Uri uri= MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Cursor cursor= getContentResolver().query(uri,
new String[]{MediaStore.Audio.Media.ALBUM,
MediaStore.Audio.Media.ARTIST,
MediaStore.Audio.Media.COMPOSER,
MediaStore.Audio.Media.DURATION,
MediaStore.Audio.Media.DISPLAY_NAME,
MediaStore.Audio.Media.SIZE,
MediaStore.Audio.Media.DATA}
, null, null, null);
album=new String[cursor.getCount()];
name=new String[cursor.getCount()];
cursor.moveToFirst();
for (int i= 0; i< cursor.getCount(); i++){
album[i]= cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM));
name[i]=cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME));
concat[i]=album[i]+" "+name[i];
cursor.moveToNext();
}
ArrayAdapter<String> arrayAdapter=new ArrayAdapter<String>(AllMusicDemo.this, android.support.v7.appcompat.R.layout.support_simple_spinner_dropdown_item,concat);
listmusic.setAdapter(arrayAdapter);
}
}
请提供您正在谈论的应用程序崩溃堆栈跟踪。 – dasar
'在列表视图中播放sdcard歌曲并在列表视图中显示'。你有两个列表视图? – greenapps
请检查这一行代码cursor.getCount();它的计数为0,这意味着循环迭代不会导致concat []数组初始化 –