0

それぞれが「アイテム名」と「アイテム価格」を持つ複数のオブジェクトを持つarrayList「listItems」があります。

カスタムベースアダプター「adapterItems」を作成し、アクティビティでアダプターをリストに設定します

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

すべてが正常に機能し、オブジェクトがarrayListに追加された順序で、すべてのアイテムがリストビューとしてアクティビティに表示されます。

ここで、このリストを商品価格の昇順で並べ替えたいと思います。

listItems をアダプターに渡す前に最初に並べ替えるか、後で listview アダプターを並べ替えても問題ありません。どちらか/両方を行うにはどうすればよいですか?

4

2 に答える 2

2

Use Comparable to sort your listview.

See this Example That compare name and sort it in Alphabetical order

in your case::

public class Item implements Comparable<Item> {

    public String name;
    public int price;

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

And

Collections.sort(yourlist);

于 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 がクラス item の arraylist の場合。

于 2012-05-28T05:01:53.303 に答える