Android如何在单击按钮单击中进行排序和反向排序

时间:2011-09-20 05:55:04

标签: android android-listview

我想在单击按钮中排序和反向排序,但我只能做一次,如何在连续按钮点击中实现这种排序和反向排序。

 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();

        }
    });

2 个答案:

答案 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;
     }
    }
 });