2016-08-24 6 views
-1

私はthis-Collections.sortソートされていないデータは

public class Song implements Parcelable { 
private String mTitle; 
private String mArtist; 
private long mID; 
private long albumID; 

public Song(long id,String title, String artist,long albumId) 
{ 
    this.mID=id; 
    this.mTitle=title; 
    this.mArtist=artist; 
    this.albumID=albumId; 
} 

public long getAlbumID() { 
    return albumID; 
} 

public void setAlbumID(long albumID) { 
    this.albumID = albumID; 
} 

public long getID() 
{ 
    return mID; 
} 

public String getArtist() { 
    return mArtist; 
} 

public String getTitle() { 
    return mTitle; 
} 

public void setID(long mID) { 
    this.mID = mID; 
} 

public void setTitle(String mTitle) { 
    this.mTitle=mTitle; 
} 

public void setArtist(String mArtist) { 
    this.mArtist = mArtist; 
} 


@Override 
public int describeContents() { 
    return 0; 
} 

@Override 
public void writeToParcel(Parcel parcel, int i) { 
     parcel.writeString(mTitle); 
    parcel.writeString(mArtist); 
    parcel.writeLong(mID); 
    parcel.writeLong(albumID); 
} 

public static final Parcelable.Creator CREATOR=new Parcelable.Creator() 
{ 
    public Song createFromParcel(Parcel in) 
    { 
     return new Song(in); 
    } 

    public Song[] newArray(int size) 
    { 
     return new Song[size]; 
    } 
}; 
public Song(Parcel in) 
{ 
    mTitle=in.readString(); 
    mArtist=in.readString(); 
    mID=in.readLong(); 
    albumID=in.readLong(); 

    } 


} 

ArrayList<Song>ようSongと呼ばれるカスタムクラスを持っています。

アルファベット順にデータを並べ替える必要があります。私は使用しています -

Collections.sort(songList, new Comparator<Song>() { 
     @Override 
     public int compare(Song a, Song b) { 
      return (a.getTitle().compareToIgnoreCase(b.getTitle())); 
     } 
    }); 

しかし、私のデータはまだソートされていません。リストは "h"で始まり、 "o"で始まり、 "s"で始まる曲から始まります。

+1

リストは "h"で始まり、 "o"で始まり、 "s"で始まる曲から始まります。 - それで、すでにソートされていますか? –

+0

@AntonMalyshev申し訳ありませんが、 "s"の後に4 "a"があることは言及していません –

+0

正しいデータでは不可能です...コレクションを使用した後でソートしています... "s" "a" – Selvin

答えて

0

問題が見つかりました。私はのsongListを取り出し、スレッド外でソートしていました。そこで、スレッドがデータの取得を完了する前にデータをソートしていました。スレッド内のソート部分を移動して機能しました。

関連する問題