我想按产品名称排序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