lassificar listview com adaptador de matr

Tenho uma listview conectada a um adaptador de matriz personalizado. Esta lista mostra as informações recebidas por uma conexão TCP que altera o dataSet ...

Posso classificar a exibição de lista comsort (Comparator<? super T> comparator), mas quando o dataSet é alterado, a exibição da lista não é mais classificada ...

Eu posso usarsort () toda vez que o dataSet é alterado, mas acho que essa não é a melhor opção ...

Como eu posso fazer isso? Alguma sugestão

EDITA

Estou com problemas na implementação das soluções apresentadas ...

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;
    }

}

Snippet do meu 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();
}

In my MyActivity.java

myDevAdapter.sort(SortType.ALPHA);

Quando estou depurando, o métodosuper.sort(new MyComparatorB(sortType)); é chamado e o construtor de MyComparatorB também é chamado. Mas o métodocompare(DeviceB lhs, DeviceB rhs) nunca é chamado e meu arrayList não é classificado ... O que estou fazendo de errado?

questionAnswers(14)

yourAnswerToTheQuestion