2015-07-24 2 views
1

У меня есть код, который извлекает имя плейлиста и идентификаторы из медиастора. Раньше он работал нормально, но теперь он как-то переставал работать.Код плейлиста для Android не работает

условие if возвращает false, и код всегда пропускает часть do-while и возвращает пустой arraylist , и если я не использую условие if, тогда он дает ошибку в строке «String plName = c.getString (c. getColumnIndex (MediaStore.Audio.Playlists.NAME));» линия. Любые идеи, почему это так?

Для понимания. Список воспроизведения - это класс java, который я создал, в котором хранятся имя и идентификатор списка воспроизведения. Заголовки являются списком воспроизведения типа 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

Не уверен, что это проблема, но Вам не нужно c.movetofirst за пределами вашей, если заявление, как вы это делаете, когда вы выполняете, если заявление.

+0

Благодарим за помощь. но я до сих пор не понимаю, почему это создает проблему. –

+0

Скорее всего, это связано с контекстом. Можете ли вы опубликовать ошибку, которую вы получите без инструкции if? – Theo

+0

Спасибо за помощь мне и большое спасибо StackOverflow Вот мое окончательное приложение в Play Маркете. Проверьте его «Geet» - https://play.google.com/store/apps/details?id=com.GeetMusicSGLabs –

Смежные вопросы