加载我的数据后,我会在交付之前对其进行排序。
完美无缺,除非我在API< 9设备。那里没有任何事情发生
有没有人有合理的理由?任何解决方法?
CollectionUtils.FINISH_TIME是我正在使用的比较器,它看起来像这样:
@Override
public int compare(Workout lhs, Workout rhs) {
return (int) (lhs.finishTime - rhs.finishTime);
}
编辑:执行排序的片段。 这是在Loaders loadInBack
中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();
}
答案 0 :(得分:0)
好吧,我现在有这个工作了。
由于完成时间总是在前一段时间内设置System.currentTimeMillis(),因此这些数字通常很大,并且在比较时会产生大的正数或负数。
我更改了它以便比较if(rhs.finishTime&gt; lhs.finishTime)是否返回1等。
我仍然不明白为什么这种方法适用于较新的手机,也许是因为我的数据始终从0开始插入,排序从未奏效。谁知道,它现在正在工作,那很重要。