如何对多列列表视图(通过第二列)进行排序以从自定义基本适配器获取值

时间:2012-05-28 04:47:59

标签: android android-listview adapter

我有一个带有多个对象的arrayList“listItems”,每个对象都有一个“Item Name”和“Item Price”。

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

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

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

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

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

2 个答案:

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

检查以下链接...

Android Sort Array

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

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。