我有一个带有多个对象的arrayList“listItems”,每个对象都有一个“Item Name”和“Item Price”。
我创建了一个自定义基本适配器“adapterItems”,在我的活动中,我将适配器设置为列表
AdapterItems adapterItems = new AdapterItems(MyActivity.this, listItems);
listView.setAdapter(adapterItems);
一切正常,所有项目都按照对象添加到arrayList的顺序作为列表视图在我的活动中移位。
现在我想按商品价格的升序对此列表进行排序。
我可以在将listItems提供给适配器之前先对其进行排序,或者稍后对listview适配器进行排序。我怎么能做到/两个?
答案 0 :(得分:2)
使用Comparable对列表视图进行排序。
See this Example That compare name and sort it in Alphabetical order
在您的情况下::
public class Item implements Comparable<Item> {
public String name;
public int price;
public int compareTo(Item another) {
return (this.price-another.price);
}
}
<强> Collections.sort(yourlist); 强>
答案 1 :(得分:0)
检查以下链接...
以上链接排序分数与要求您排序价格相同...
OR
创建自定义可比较的...
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是class item的arraylist。