我想在单击按钮中排序和反向排序,但我只能做一次,如何在连续按钮点击中实现这种排序和反向排序。
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Comparator<Book> bb=Collections.reverseOrder();
bk=Arrays.asList(books);
Collections.sort(bk,bb);
//Collections.shuffle(bk);
// Collections.sort(bk);
bookListView.invalidateViews();
}
});
答案 0 :(得分:1)
您所做的所有代码都是以反向顺序对列表进行排序。
Collections.reverseOrder()返回一个反转的比较器。
然后将bb比较器传递给Collections.sort方法,该方法可以反转集合。
从java doc中,根据指定比较器引发的顺序对指定列表进行排序。
你应该在逆转之后对它进行排序。
答案 1 :(得分:0)
使用初始值为true的Boolean
字段。在按钮的单击处理程序中,比较布尔字段值,如果它是true
,则进行排序并将false
设置为布尔字段。如果布尔值为false
,则执行反向操作并将true
设置为布尔字段。
boolean state=true;
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(state) {
//sort
state=false;
}
else{
//reverse
state=true;
}
}
});