Java Android sort listview与Comparator不工作
我的Java Android sort listview与Comparator不工作,java,android,listview,comparator,Java,Android,Listview,Comparator,我的onCreate方法中有此代码,用于创建自定义列表视图: adapter = new CustomAdapter(CustomListView, mAllListModel, res); mFtpDao.open(); final Tupel<String, Boolean> lSort = mFtpDao.loadSort(mCurrentPath); mFtpDao.close(); adapter.sort(new FtpContentComparator(lSort));
onCreate
方法中有此代码,用于创建自定义列表视图
:
adapter = new CustomAdapter(CustomListView, mAllListModel, res);
mFtpDao.open();
final Tupel<String, Boolean> lSort = mFtpDao.loadSort(mCurrentPath);
mFtpDao.close();
adapter.sort(new FtpContentComparator(lSort));
list.setAdapter(adapter);
adapter.notifyDataSetChanged();
比较国:
package de.bc.coreftp.comparator;
import java.util.Comparator;
import de.bc.coreftp.list.ListModel;
import de.beike.consulting.core.ftp.business.Tupel;
public class FtpContentComparator implements Comparator<ListModel> {
private Tupel<String, Boolean> mSortCriteria;
public FtpContentComparator(Tupel<String, Boolean> pSortCriteria) {
mSortCriteria = pSortCriteria;
}
@Override
public int compare(ListModel arg0, ListModel arg1) {
String lSortAfter = " Name ";
if (null != mSortCriteria){
lSortAfter = mSortCriteria.get1st();
}
if (" Name ".equals(lSortAfter)){
return arg0.getFtpContent().getName().compareTo(arg1.getFtpContent().getName());
}
return 0;
}
}
package de.bc.coreftp.comparator;
导入java.util.Comparator;
导入de.bc.coreftp.list.ListModel;
导入de.beike.consulting.core.ftp.business.Tupel;
公共类FtpContentComparator实现Comparator{
私有元组标准;
公共FtpContentComparator(Tupel pSortCriteria){
mSortCriteria=pSortCriteria;
}
@凌驾
公共整数比较(ListModel arg0、ListModel arg1){
字符串lSortAfter=“Name”;
if(null!=mSortCriteria){
lSortAfter=mSortCriteria.get1st();
}
如果(“名称”。等于(lSortAfter)){
返回arg0.getFtpContent().getName().compareTo(arg1.getFtpContent().getName());
}
返回0;
}
}
现在我不知道怎么了,你看到我的错误了吗
致意
Stefan根据您发布的代码,一切看起来都是正确的。对您提供的数据集进行排序。如果因为数据集为空或未将其提供给超级构造函数而未调用比较,例如
public class CustomAdapter extends ArrayAdapter<ListModel> implements
OnClickListener {
public CustomAdapter(Context context, List<ListModel> dataset) {
super(context, R.id.list, dataset);
}
公共类CustomAdapter扩展ArrayAdapter实现
onclick侦听器{
公共CustomAdapter(上下文、列表数据集){
super(上下文、R.id.list、数据集);
}
您使用的是ArrayAdapter吗?是的。我的CustomAdapter从ArrayAdapter扩展而来。您能否发布FtpContentComparator
?查看我编辑过的问题。我的比较内断点从未被调用。您是否向ArrayAdapter的超级构造函数提供数据集?
public class CustomAdapter extends ArrayAdapter<ListModel> implements
OnClickListener {
public CustomAdapter(Context context, List<ListModel> dataset) {
super(context, R.id.list, dataset);
}