在API上对数据进行排序< 9什么也没做

时间:2013-11-12 10:39:12

标签: android sorting loading

加载我的数据后,我会在交付之前对其进行排序。

完美无缺,除非我在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();
}

1 个答案:

答案 0 :(得分:0)

好吧,我现在有这个工作了。

由于完成时间总是在前一段时间内设置System.currentTimeMillis(),因此这些数字通常很大,并且在比较时会产生大的正数或负数。

我更改了它以便比较if(rhs.finishTime&gt; lhs.finishTime)是否返回1等。

我仍然不明白为什么这种方法适用于较新的手机,也许是因为我的数据始终从0开始插入,排序从未奏效。谁知道,它现在正在工作,那很重要。