2016-12-11 3 views
0

Я создал файл JSON, из которого мое приложение Android вытягивает список и помещает гимн и помещает их в определенном порядке. Раньше у меня были все мои файлы в copticchurch-library.org/media. Сюда включались все носители и сам файл JSON. Тем не менее, я хотел бы сделать больше организации, поскольку она может немного дезорганизоваться при добавлении большего количества носителей.JSON не разбирает дорожки в правильном порядке

Я создал новый каталог на copticchurch-library.org/media/matinsandvespers. В этом каталоге есть все средства массовой информации (mp3 и обложки альбомов), относящиеся к этой папке. Папка JSON еще в copticchurch-library.org/media

Выпуск Почему это не список треков в правильном порядке на приложение?

JSON код

{"music" : [ 
{ "title" : "Mercy and Compassion", 
    "album" : "Standard Deacon Responses", 
    "artist" : "Cantor Ibrahim Ayad", 
    "genre" : "Standard Deacon Responses", 
    "source" : "http://copticchurch-library.org/media/matinsandvespers/Mercy_compassion.mp3", 
    "image" : "http://copticchurch-library.org/media/matinsandvespers/image1.jpg", 
    "trackNumber" : 1, 
    "totalTrackCount" : 5, 
    "duration" : 57, 
    "site" : "http://copticchurch-library.org/media/matinsandvespers" 
}, 
{ "title" : "Litany of the Departed", 
    "album" : "Standard Deacon Responses", 
    "artist" : "Cantor Ibrahim Ayad", 
    "genre" : "Standard Deacon Responses", 
    "source" : "http://copticchurch-library.org/media/matinsandvespers/Litany_departed.mp3", 
    "image" : "http://copticchurch-library.org/media/matinsandvespers/image2.jpg", 
    "trackNumber" : 2, 
    "totalTrackCount" : 5, 
    "duration" : 95, 
    "site" : "http://copticchurch-library.org/media/matinsandvespers" 
}, 
{ "title" : "Litany of the Sick", 
    "album" : "Standard Deacon Responses", 
    "artist" : "Cantor Ibrahim Ayad", 
    "genre" : "Standard Deacon Responses", 
    "source" : "http://copticchurch-library.org/media/matinsandvespers/Litany_sick.mp3", 
    "image" : "http://copticchurch-library.org/media/matinsandvespers/image3.jpg", 
    "trackNumber" : 3, 
    "totalTrackCount" : 5, 
    "duration" : 43, 
    "site" : "http://copticchurch-library.org/media/matinsandvespers" 
}, 
    { "title" : "Litany of the Travelers", 
    "album" : "Standard Deacon Responses", 
    "artist" : "Cantor Ibrahim Ayad", 
    "genre" : "Standard Deacon Responses", 
    "source" : "http://copticchurch-library.org/media/matinsandvespers/Litany_travlers.mp3", 
    "image" : "http://copticchurch-library.org/media/matinsandvespers/image4.jpg", 
    "trackNumber" : 4, 
    "totalTrackCount" : 5, 
    "duration" : 61, 
    "site" : "http://copticchurch-library.org/media/matinsandvespers" 
}, 

на основе кода и скриншоте, все в порядке, и я не могу понять, почему.

Screenshot of disordered media

Как ни странно это работает, когда я положил все в одном месте, но когда я хочу, чтобы создать суб-Dir, она теряет свой заказ.

Я пробовал помещать файл music.json в этот каталог, но все равно не повезло.

Любая помощь будет оценена по достоинству.

Редактировать Я добавил несколько дорожек к методу возврата и треки по-прежнему не в порядке.

Edit 2

RemoteJSON.java

MusicProvider.java

Редактировать 3 Github project repo

+0

Показать код –

+0

, потому что я не смог проверить вашу проблему. вы используете retrofit для извлечения json –

+0

Просто добавили все соответствующие коды и репо для приложения на github – abbanoob

ответ

0

Друг помог мне понять, как это сделать. Это код, который он написал, который работал.

} for (String key : newMusicListByGenre.keySet()) 
     { 
      Collections.sort(newMusicListByGenre.get(key), new Comparator<MediaMetadataCompat>() { 
       @Override 
       public int compare(MediaMetadataCompat track1, MediaMetadataCompat track2) { 
        return track1.getLong(MediaMetadataCompat.METADATA_KEY_TRACK_NUMBER) < track2.getLong(MediaMetadataCompat.METADATA_KEY_TRACK_NUMBER) ? -1 : 1; 
       } 
      }); 
     } 
     mMusicListByGenre = newMusicListByGenre; 


     list.add(m.metadata); 
    } 
    mMusicListByGenre = newMusicListByGenre; 

}