Vista de lista de clasificación con adaptador de matriz

Tengo una vista de lista conectada a un adaptador de matriz personalizado. Esta lista muestra la información recibida por una conexión TCP que cambia el DataSet ...

Puedo ordenar la vista de lista consort (Comparator<? super T> comparator), pero cuando se cambia el DataSet, la vista de lista ya no se ordena ...

Puedo usarsort () cada vez que se cambia el DataSet, pero creo que esta no es la mejor opción ...

¿Cómo puedo hacer eso? ¿Alguna sugerencia

EDITA

Tengo problemas para implementar las soluciones presentadas ...

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 de mi 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);

Cuando estoy depurando, el métodosuper.sort(new MyComparatorB(sortType)); se llama y también se llama al constructor de MyComparatorB. Pero el métodocompare(DeviceB lhs, DeviceB rhs) nunca se llama y mi arrayList no está ordenada ... ¿Qué estoy haciendo mal?

Respuestas a la pregunta(14)

Su respuesta a la pregunta