Android 对API上的数据进行排序<;什么也不做
加载数据后,我会在交付数据之前对其进行排序 除非在API<9的设备上使用Im,否则工作正常。在那里,什么也没有发生 有人有合法的理由吗?有解决办法吗 CollectionUtils.FINISH\u TIME是我使用的比较器,它如下所示:Android 对API上的数据进行排序<;什么也不做,android,sorting,loading,Android,Sorting,Loading,加载数据后,我会在交付数据之前对其进行排序 除非在APIlhs.finishTime)是否返回1等 我仍然不明白为什么这在新手机上起作用,也许是因为我的数据从一开始就被插入到0,而排序从未起作用。谁知道呢,它现在正在工作,这才是最重要的。我不这么认为,这应该是特定版本的。肯定还有另外一个问题……我有点同意你的看法。然而,当它在任何运行在API 9以上的设备上都能完美工作时,可能是什么原因呢?可比较的界面与Android版本无关。在调用此代码段的地方发布一些代码。@SteveBenett我又添加了
@Override
public int compare(Workout lhs, Workout rhs) {
return (int) (lhs.finishTime - rhs.finishTime);
}
编辑:执行排序的代码段。
这是在装载机的装载机内
try {
final String json = DataHandler.read(getContext(), DataFiles.LOGGED_WORKOUTS);
if (!TextUtils.isEmpty(json)) {
final ArrayList<Workout> workouts = Lists.newArrayList(new Gson().fromJson(json,
Workout[].class));
Collections.sort(workouts, CollectionUtils.FINISH_TIME);
return workouts;
}
} catch (IOException e) {
Utils.logExceptionAndReport(TAG, e);
}
return Lists.newArrayList();
}
试试看{
最后一个字符串json=DataHandler.read(getContext(),DataFiles.LOGGED\u训练);
如果(!TextUtils.isEmpty(json)){
最终ArrayList训练=Lists.newArrayList(new Gson().fromJson(json,
训练[]班];
集合。排序(训练、集合。完成时间);
返回训练;
}
}捕获(IOE异常){
日志例外和报告(标签e);
}
返回列表。newArrayList();
}
好的,我现在可以开始工作了
由于完成时间总是System.currentTimeMillis()在一段时间前设置的,因此这些数字通常很大,比较时会产生一个很大的正数或负数
我更改了它,以便比较(rhs.finishTime>lhs.finishTime)是否返回1等
我仍然不明白为什么这在新手机上起作用,也许是因为我的数据从一开始就被插入到0,而排序从未起作用。谁知道呢,它现在正在工作,这才是最重要的。我不这么认为,这应该是特定版本的。肯定还有另外一个问题……我有点同意你的看法。然而,当它在任何运行在API 9以上的设备上都能完美工作时,可能是什么原因呢?可比较的界面与Android版本无关。在调用此代码段的地方发布一些代码。@SteveBenett我又添加了一些代码。