Я попробовал это, но единственное, что отсортировано, это названия альбомов, я уже использую компаратор внутри моего getAlbum (); поэтому имена уже отсортированы, но обложка альбома не соответствует названию альбома.

му моя проблема в том, что когда я пытаюсь отсортировать альбомы, название альбома и обложка альбома неверны.

Я попытался отсортировать идентификаторы альбомов, но это не исправило это, потому что идентификаторы альбомов никак не связаны с сортировкой обложек.

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

Как я могу отсортировать мои альбомы во фрагменте?

Ниже вы можете найти мой код.

Заранее спасибо,

Винс

ПЕСНЯ МОДЕЛЬ

 // Columns I'll retrieve from the song table
    String[] columns = {
            SONG_ID,
            SONG_TITLE,
            SONG_ARTIST,
            SONG_ALBUM,
            SONG_ALBUMID,
            SONG_FILEPATH,
    };

    // Limits results to only show music files.
    //
    // It's a SQL "WHERE" clause - it becomes `WHERE IS_MUSIC=1`.
    //
    final String musicsOnly = MediaStore.Audio.Media.IS_MUSIC + "=1";

    // Querying the system
    cursor = resolver.query(musicUri, columns, musicsOnly, null, null);

    if (cursor != null && cursor.moveToFirst())
    {

        do {
            // Creating a song from the values on the row
            Song song = new Song(cursor.getInt(cursor.getColumnIndex(SONG_ID)),
                    cursor.getString(cursor.getColumnIndex(SONG_FILEPATH)));

            song.setTitle      (cursor.getString(cursor.getColumnIndex(SONG_TITLE)));
            song.setArtist     (cursor.getString(cursor.getColumnIndex(SONG_ARTIST)));
            song.setAlbumID    (cursor.getInt(cursor.getColumnIndexOrThrow(SONG_ALBUMID)));
            song.setAlbum      (cursor.getString(cursor.getColumnIndexOrThrow(SONG_ALBUM)));
            // Using the previously created genre and album maps
            // to fill the current song genre.
            String currentGenreID   = songIdToGenreIdMap.get(Long.toString(song.getId()));
            String currentGenreName = genreIdToGenreNameMap.get(currentGenreID);
            song.setGenre(currentGenreName);

            // Adding the song to the global list
            songs.add(song);
        }
        while (cursor.moveToNext());
    }
    else
    {
        // What do I do if I can't find any songs?

    }
    cursor.close();

public ArrayList<String> getArtists() {

    ArrayList<String> artists = new ArrayList<String>();

    for (Song song : songs) {
        String artist = song.getArtist();

        if ((artist != null) && (! artists.contains(artist)))
            artists.add(artist);
    }

    // Making them alphabetically sorted
    Collections.sort(artists, new Comparator<String>() {
        @Override
        public int compare(String o1, String o2) {
            return o1.compareTo(o2);
        }
    });
    return artists;
}

/**
 * Returns an alphabetically sorted list with all the
 * albums of the scanned songs.
 *
 * @note This method might take a while depending on how
 *       many songs you have.
 */

public ArrayList<String> getAlbums() {

    ArrayList<String> albums = new ArrayList<String>();

    for (Song song : songs) {
        String album = song.getAlbum();

        if ((album != null) && (! albums.contains(album)))
            albums.add(album);

    }

ПЕСНИ КЛАСС

public class Song implements Serializable {

private long id;
private String data;
private String title = "";
private String artist = "";
private int   albumid      = -1;
private String album = "";
private String genre = "";


public Song(long songId, String songData){
    this.id = songId;
    this.data = songData;
}

public long getId(){
    return id;
}
public String getData(){return data;}

//Optional meta data

public void setTitle(String title){
    this.title = title;
}
public String getTitle() {
    return title;
}

public void setArtist(String artist){
    this.artist = artist;
}
public String getArtist() {
    return artist;
}

public int getAlbumID() {
    return albumid;
}
public void setAlbumID(int albumid) { this.albumid = albumid; }

public void  setAlbum(String album){
    this.album = album;
}
public String getAlbum() { return album; }

public void setGenre(String genre) {
    this.genre = genre;
}
public String getGenre() {
    return genre;
}


}

Ответы на вопрос(5)

Ваш ответ на вопрос