我有一个代码,可以从mediastore中检索播放列表名称和ID。 以前它工作正常,但它现在不知何故停止工作。
if条件返回false并且代码总是跳过do-while部分并返回空的arraylist 如果我不使用if条件,那么它会在" String plName = c.getString(c.getColumnIndex(MediaStore.Audio.Playlists.NAME));"线。任何想法为什么表现如此?
为了理解 - 播放列表是我创建的一个java类,它存储播放列表名称和ID。标题是播放列表类型的ArrayList。
代码 -
ContentResolver resolver = getActivity().getContentResolver();
Uri playlists = MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI;
Cursor c = resolver.query(playlists, null, null, null, null);
long playlistId = 0;
c.moveToFirst();
if(c!=null && c.moveToFirst()) {
do {
String plName = c.getString(c.getColumnIndex(MediaStore.Audio.Playlists.NAME));
playlistId = c.getLong(c.getColumnIndex(MediaStore.Audio.Playlists._ID));
Titles.add(new Playlist(playlistId, plName));
} while (c.moveToNext());
}
c.close();
答案 0 :(得分:0)
不确定这是否是问题,但在执行if语句时,不需要在if语句之外使用c.movetofirst。