我想按產品名稱排序ListView的項目。我有一個稱爲「數據」的向量,它是一類類。使用自定義適配器按產品名稱排序ListView?
我的類是:
public static class RowData implements Comparable<RowData>{
public String mProductName;
protected int mId;
protected int mOnHand;
protected double mPrice;
protected boolean mIsColleaction;
protected boolean mIsPrePack;
RowData(int id ,String productName,int onhand,double price,boolean IsColleaction, boolean IsPrePack) {
mId= id;
mProductName= productName;
mOnHand =onhand;
mPrice = price;
mIsColleaction =IsColleaction;
mIsPrePack = IsPrePack;
}
@Override
public String toString() {
return mProductName;
}
public int compareTo(RowData other) {
return mProductName.compareTo(other.mProductName);
}
public static Comparator<RowData> COMPARE_BY_PRODUCTNAME = new Comparator<RowData>() {
public int compare(RowData one, RowData other) {
return one.mProductName.compareTo(other.mProductName);
}
};
}
和我已延伸ArrayAdapter<RowData>
自定義適配器。
我排序的代碼,我寫在onCreate()
如下,
Collections.sort(data, RowData.COMPARE_BY_PRODUCTNAME);
adapter = new CustomAdapter(this, R.layout.list,R.id.title, data);
setListAdapter(adapter);
adapter.notifyDataSetChanged();
我必須使用自定義適配器,因爲以顯示該產品的價格以及數量在產品的手
該數據是一個類型爲RowData
的向量我正在調試產品名稱的排序順序後,我想要但綁定到ListView
時,它不按排序順序顯示。
我是新來的機器人請幫助我。
感謝亞歷克斯·洛克伍德,我使用ArrayAdaptor<Class>
類型的自定義適配器。
在我onCreate()
方法,我實現排序方法,如下面,
adapter = new CustomAdapter(this, R.layout.list,R.id.title, data);
adapter.sort(new Comparator<RowData>() {
public int compare(RowData arg0, RowData arg1) {
return arg0.mProductName.compareTo(arg1.mProductName);
}
});
setListAdapter(adapter);
在我customAdaptor
課,我要重寫sort
這樣,
public void sort(Comparator<? super RowData> comparator) {
// TODO Auto-generated method stub
super.sort(comparator);
}
,如果你能幫幫我修改上面的代碼或者向我推薦你的代碼。
在此先感謝。
請確保您的「CustomAdapter」能夠顯示正常的數組或ArrayList。當這項工作 - 你應該也能夠顯示一個排序的數據集。 – 2012-01-18 10:34:49
當您將新適配器設置爲列表時,您不需要使用notifyDataSetChanged()方法。 只需粘貼你的適配器代碼和活動代碼。 – jeet 2012-01-18 10:36:00
感謝杯能否請你給我提供的代碼相同或請你使用的代碼 – 2012-01-18 12:10:45