Sorting ArrayList based on Integer
When I get data in ListView getting data in the same sequence, but what if I want to sort data based on MemberID, But I want to show recently on top
public class AppointmentsActivity extends Activity {
...
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
....
adapter = new MembersAdapter (MembersActivity.this, R.layout.adapter_members, membersArrayList);
listView.setAdapter(adapter);
}
........
}
+3
source to share
3 answers
Use Collections.sort () to sort ArrayList, there is a sample:
Collections.sort(membersArrayList, new Comparator<Member>(){
public int compare(Member m1, Member m2) {
if (m1.getMemberID() == m2.getMemberID()) {
return 0;
} else if (m1.getMemberID() > m2.getMemberID()) {
return 1;
} else {
return -1;
}
}
});
+2
source to share
This should work:
Collections.sort(membersArrayList, new Comparator<Member>(){
public int compare(Member m1, Member m2) {
return m1.getMemberID() - m2.getMemberID(); // sort order
}
});
Note. You must name the class Members
in the singular as it represents one Member
.
EDIT: The sort order depends on how you set http://developer.android.com/reference/android/widget/AbsListView.html#setStackFromBottom(boolean)
If the bottom stack is set to true, the list fills its contents from the bottom of the view.
0
source to share