Android播放列表代码无效

时间:2015-07-24 10:46:37

标签: android playlist mediastore

我有一个代码,可以从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();

1 个答案:

答案 0 :(得分:0)

不确定这是否是问题,但在执行if语句时,不需要在if语句之外使用c.movetofirst。