【发布时间】:2021-07-26 14:51:56
【问题描述】:
我一直在尝试对 android 中的方法列表进行排序,但目前无法做到。这是实现
public List<Items> getItems(@NotNull Context context){
List<Items> tempList = new ArrayList<>();
Uri uri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
String [] projection = {
MediaStore.Video.Media._ID,
MediaStore.Video.Media.DATA,
MediaStore.Video.Media.TITLE,
};
Cursor cursor = context.getContentResolver().query(uri,projection,null,null,null);
if (cursor != null){
while (cursor.moveToNext()){
String id = cursor.getString(0);
String path = cursor.getString(1);
String title = cursor.getString(2);
Items items= new Items(id,path,title);
tempVideos.add(items);
}
cursor.close();
}
return tempVideos;
我正在尝试按标题对列表进行排序,按以下方式通过此方法返回,但未按所需顺序排序。
List<Items> a = new ArrayList(Collections.singletonList(getItems(getActivity())));
Collections.sort(a, new Comparator<Items>() {
@Override
public int compare(Items o1, Items o2) {
if (o1 == null) return -1;
else if (o2 == null) return 1;
int cmp = String.CASE_INSENSITIVE_ORDER.compare(o1.getTitle(), o2.getTitle());
if (cmp != 0) return cmp;
return o1.getTitle().toLowerCase().compareTo(o2.getTitle().toLowerCase());
}
});
【问题讨论】: