当我将数据提取到ListView中时,以相同的顺序获取数据,但是如果我想基于MemberID对数据进行排序,但是我想显示最近的数据
autoscroll
答案 0 :(得分:2)
使用Collections.sort()进行排序ArrayList,有样本:
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;
}
}
});
答案 1 :(得分:1)
这应该有效:
Collections.sort(membersArrayList, new Comparator<Member>(){
public int compare(Member m1, Member m2) {
return m1.getMemberID() - m2.getMemberID(); // sort order
}
});
注意:您应该以单数形式命名类Members
,因为它是一个Member
的表示。
编辑:排序顺序取决于您设置http://developer.android.com/reference/android/widget/AbsListView.html#setStackFromBottom(boolean)
的方式当stack from bottom设置为true时,列表会填充其内容 从视图的底部开始。
答案 2 :(得分:1)
如果您使用Java 8进行开发,则可以使用lambda表达式:
Collections.sort(membersArrayList,
(m1, m2) -> (int) (m2.getMemberID() - m1.getMemberID()));