Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 对API上的数据进行排序<;什么也不做_Android_Sorting_Loading - Fatal编程技术网

Android 对API上的数据进行排序<;什么也不做

Android 对API上的数据进行排序<;什么也不做,android,sorting,loading,Android,Sorting,Loading,加载数据后,我会在交付数据之前对其进行排序 除非在APIlhs.finishTime)是否返回1等 我仍然不明白为什么这在新手机上起作用,也许是因为我的数据从一开始就被插入到0,而排序从未起作用。谁知道呢,它现在正在工作,这才是最重要的。我不这么认为,这应该是特定版本的。肯定还有另外一个问题……我有点同意你的看法。然而,当它在任何运行在API 9以上的设备上都能完美工作时,可能是什么原因呢?可比较的界面与Android版本无关。在调用此代码段的地方发布一些代码。@SteveBenett我又添加了

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

除非在API<9的设备上使用Im,否则工作正常。在那里,什么也没有发生

有人有合法的理由吗?有解决办法吗

CollectionUtils.FINISH\u TIME是我使用的比较器,它如下所示:

@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我又添加了一些代码。