2016-12-11 2 views
0

Ich habe eine JSON-Datei erstellt, von der meine Android-App die Liste erstellt und die Hymne in eine bestimmte Reihenfolge bringt. Zuvor hatte ich alle meine Dateien in copticchurch-library.org/media. Dies umfasste alle Medien und die JSON-Datei selbst. Allerdings würde ich gerne mehr Organisation sehen, da es beim Hinzufügen weiterer Medien etwas unorganisiert werden könnte.JSON analysiert keine Tracks in der richtigen Reihenfolge

Ich habe ein neues Verzeichnis erstellt auf copticchurch-library.org/media/matinsandvespers. Dieses Verzeichnis enthält alle Medien (mp3 und Albumcover), die zu diesem Ordner gehören. Die JSON-Ordner befindet sich noch in copticchurch-library.org/media

Ausgabe Warum ist es, dass es nicht um die Titel in der richtigen Reihenfolge auf der App auflistet?

JSON-Code

{"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" 
}, 

Basierend auf dem Code und den Screenshot, alles aus der Ordnung ist, und ich kann nicht herausfinden, warum.

Screenshot of disordered media

Seltsamer funktioniert es, wenn ich alles an einem Ort setzen, aber wenn ich Unterverzeichnis erstellt werden soll, verliert es seine Ordnung.

Ich habe versucht, die Datei music.json in dieses Verzeichnis zu setzen, aber immer noch kein Glück.

Jede Hilfe wäre willkommen.

Bearbeiten Ich habe mehr Tracks hinzugefügt, und die Tracks sind immer noch nicht in Ordnung.

bearbeiten 2

RemoteJSON.java

MusicProvider.java

bearbeiten 3 Github project repo

+0

Zeigen Sie den entsprechenden Code –

+0

, weil ich Ihr Problem nicht überprüfen konnte. Sie verwenden Retrofit zum Abrufen von JSON –

+0

Fügen Sie einfach alle relevanten Code und das Repo für die App auf GitHub – abbanoob

Antwort

0

Ein Freund hat mir geholfen, herauszufinden, wie es zu tun. Dies ist der Code, den er schrieb, der am Ende funktionierte.

} 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; 

} 
Verwandte Themen