In my listActivity , I am using
setListAdapter(new ArrayAdapter<String>(this, R.layout.project_list, titles));
to set my list view. now I want to sort this list on click of spinner for that i am using like it
spn_sort_order .setOnItemSelectedListener(new OnItemSelectedListener() {
public void onNothingSelected(AdapterView<?> arg0) { }
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
and to display the new results I need to refresh the old view.
Edit:
public void onItemSelected(AdapterView<?> parent, View v,
int position, long id) {
sortBy = position;
System.out.println("selected item id:::priortiy::::"
+ sortBy);
if (sortBy == 1) {
Collections.sort(titles);
System.out.println(titles);
setListAdapter(listAdapter);
listAdapter.notifyDataSetChanged();
}
if (sortBy == 2) {
Comparator<Object> comparator = Collections.reverseOrder();
Collections.sort(titles,comparator);
System.out.println(titles);
setListAdapter(listAdapter);
listAdapter.notifyDataSetChanged();
}
}
when i click on first item in the list my data is sorted in ascending order and when i click on second item in the list data is sorted in descending order bcoz i used
Comparator<Object> comparator = Collections.reverseOrder();
It seems that you’re using an
ArrayAdapterso I would recommend usingarrayAdapter.notifyDataSetChanged()