オブジェクト持ちのArrayListのソート – Android

ListViewでBaseAdapterとか使ってればよく使うやつ。
厄介そうに見えて、簡単なんだけど、普段使わないComparatorとか使うから、記憶から完全に消えるやつ。

こんなItemっていうオブジェクトをもったリストがあったとして、

private ArrayList<Item> list = new ArrayList<Item>();

こんな感じでItemが定義されてたならば、

public class Item {
    String name = "";

    public Item(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

Comparatorってやつをこんな感じで定義、

Comparator<Item> itemComparator = new Comparator<Item>() {
    public int compare(Item item1, Item item2) {
        return item1.getName().compareTo(item2.getName());
    }
};

あとはこんな感じで実行すると並び替えてくれます。

Collections.sort(list, itemComparator);

表示後なら、notifyDataSetChanged()もやったほうが良さげ。