Впереди куча псевдокода, вас предупредили.
Скажем, у вас есть класс Foo
class Foo{
private int param1;
private float param2;
private String param3;
}
Теперь создайте 3 компаратора, по одному для каждого члена, с которым вы хотите отсортировать,Желательно сделать его статическим членом того же класса.
class Foo
{
public static Comparator PARAM1_COMPARATOR = <defination>;
public static Comparator PARAM2_COMPARATOR = <defination>;
public static Comparator PARAM3_COMPARATOR = <defination>;
}
В вашей деятельности используйте эту функцию refreshList()
(или что-то в этом роде), которая вызывается при изменении порядка сортировки.
void refreshList()
{
List<Foo> list = //say this is your list
//Pro tip: User a switch case instead.
if(Sort_by_param1)
Collections.sort(list, Foo.PARAM1_COMPARATOR);
if(Sort_by_param2)
Collections.sort(list, Foo.PARAM2_COMPARATOR);
if(Sort_by_param3)
Collections.sort(list, Foo.PARAM3_COMPARATOR);
adapter.notifyDatasetChanged() or call setAdapter again with the new list.
}