0

我有一个带有多个对象的arrayList“listItems”,每个对象都有一个“项目名称”和“项目价格”。

我创建了一个自定义基本适配器“adapterItems”,并在我的活动中将适配器设置为列表

AdapterItems adapterItems = new AdapterItems(MyActivity.this, listItems);
listView.setAdapter(adapterItems);

一切正常,所有项目都按照对象添加到arrayList的顺序作为列表视图显示在我的活动中。

现在我想按商品价格的升序对这个列表进行排序。

我可以先对 listItems 进行排序,然后再将其提供给适配器,或者稍后对 listview 适配器进行排序。我怎么能做一个/两个?

4

2 回答 2

2

使用Comparable对列表视图进行排序。

请参阅此示例比较名称并按字母顺序对其进行排序

在你的情况下::

public class Item implements Comparable<Item> {

    public String name;
    public int price;

    public int compareTo(Item another) {
        return (this.price-another.price);
    }
}

Collections.sort(你的列表);

于 2012-05-28T04:53:53.207 回答
0

检查下面的链接...

Android 排序数组

以上链接排序分数与要求您排序价格相同...

或者

创建自定义可比较像..

Comparator<Item > comperator = new Comparator<Item >() 
{
    @Override               
    public int compare(Item  object1, Item  object2) {                  
        float First = Float.parseFloat(object1.price);                      
        float Second = Float.parseFloat(object2.price);                     
        return (First < Second ? -1 : (First == Second ? 0 : 1));           
    }
};

Collections.sort(Itemdata, comperator);

当 item 是您的班级并且 Itemdata 是班级项目的数组列表时。

于 2012-05-28T05:01:53.303 回答