Cómo cambiar la posición del elemento de la vista de lista cuando se ordena ArrayList en Android

Le sugiero que haga uso de collections.swap Ofrece la posibilidad de cambiar las posiciones de los elementos en cualquier tipo de colección. Colecciones | Desarrolladores de Android Cambia los elementos en las posiciones especificadas en la lista especificada. (Si las posiciones especificadas son iguales, invocar este método deja la lista sin cambios).

if (fromPosition <toPosition) {
for (int i = fromPosition; i <toPosition; i ++) {
Collections.swap (itemList, i, i + 1);
}
} más {
for (int i = fromPosition; i> toPosition; i–) {
Collections.swap (itemList, i, i – 1);
}
}
notifyItemMoved (fromPosition, toPosition);
}
intercambio nulo (Lista lista, int i, int j)

Lista: la lista en la que se intercambian elementos.
i int: el índice de un elemento a intercambiar.
j int: el índice del otro elemento a intercambiar

Después de la clasificación, solo obtenga el adaptador para la vista de lista usando la función getAdapter (), escriba a la clase de adaptador respectiva y llame a la función notifyDataSetChanged () en el adaptador.

Por ejemplo, si la vista de lista es lista y mi adaptador es de tipo BaseAdapter, entonces:

((BaseAdapter) list.getAdapter ()). NotifyDataSetChanged ();

De manera similar para ArrayAdapter sería:

((ArrayAdapter) list.getAdapter ()). NotifyDataSetChanged ();