Сортировка списка с помощью адаптера массива

У меня есть список, подключенный к пользовательскому адаптеру массива. Этот список показывает информацию получено TCP-соединением, которое изменяет набор данных...

Я могу отсортировать список с помощью sort (Comparator comparator), но когда набор данных изменен, список больше не сортируется...

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

Как мне это сделать? предложения?

РЕДАКТИРОВАТЬ

У меня проблемы с реализацией представленных решений...

MyComparatorB.java

public class MyComparatorB implements Comparator<DeviceB> {

private byte orderType;

public MyComparatorB(byte type) {

    this.orderType = type;

}

public int compare(DeviceB lhs, DeviceB rhs) {

    int res = 0;
    if (orderType == SortType.ALPHA) {
            res = (lhs.getName()).compareTo(rhs.getName());
        }
        else if (orderType == SortType.LAST_ACT) {
            res = (rhs.getTime().getTime()).compareTo(lhs.getTime().getTime());
        }
        return res;
    }

}

Фрагмент моего customArrayAdapter.java

    @Override
public void notifyDataSetChanged() {
    super.notifyDataSetChanged();
}


//-----------Order the content of the arrayAdapter------------//
public void sort(byte sortType) {

    super.sort(new MyComparatorB(sortType));
    notifyDataSetChanged();
}

В моем MyActivity.java

myDevAdapter.sort(SortType.ALPHA);

Когда я при отладке вызывается метод super.sort(new MyComparatorB(sortType));и вызывается конструктор MyComparatorB. Но метод compare(DeviceB lhs, DeviceB rhs )никогда не вызывается, и мой список массивов не отсортирован... Что я делаю неправильно?

28
задан amp 29 March 2012 в 10:20
поделиться