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

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

Я могу отсортировать список с помощьюsort (Comparator<? super T> comparator), но при изменении dataSet список больше не сортируется ...

я могу использовать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) никогда не вызывается и мой arrayList не сортируется ... Что я делаю не так?

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

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