java - 如何根据日期对回收者 View 进行排序

标签 java android collections

第二次发帖了......

这是我的问题

这是关于 Android 的。我正在实现具有异构布局的回收器 View 。我正在向它传递静态数据。因此,如果其布局 A,则它采用对象 A 数据。如果其布局 B,则采用对象 B 数据,依此类推。

示例:

List.add(new A("May 27",2,3000$));

List.add(new B("April 21",2,"Place1",2000$));

List.add(new c("March 20","from place","toplace",5000$));

我的问题是如何根据我们为每个对象传递的日期对 Recyclerview 进行排序。假设“3 月 20 日”排在第一位,因此它必须显示在回收器 View 的顶部,而“5 月 27 日”应该显示在回收器 View 的最后。

我可以通过传递列表和比较器接口(interface)的实现作为第二个参数来使用 Collections.sort() 。通过去掉日期字段并将其插入父类 D 并使类 A、B、C 继承类 D。但它在我的情况下不起作用。

Class D {

    private String date;

    // getter and setter method

}

Class A extends D{}

Class B extends D{}

Class C extends D{}

IN RecyclerViewAdapter

//onCreateViewHolder()


//OnBindViewHolder()

//getiewType()


//Creating list of data

private ArrayList<Object> getData(){

        ArrayList<Object> list = new ArrayList<>();

        for(int i=0;i<=20;i++) {

            list.add(new A("MAY 23", 1, 3000$));

            list.add(new B("April27", 1, 2, 3400$));

            list.add(new C("New york" "March 28", 1000$, 2, 2));

        }


    Collections.sort(list, new Comparator<D>() {

        @Override
        public int compare(D l1, D l2) {

            SimpleDateFormat sdf = new SimpleDateFormat("MMM dd", Locale.ENGLISH);

            Date d1=null;
            Date d2= null;

            try {
                d1=sdf.parse(String.valueOf(l1.getDate()));

                 d2= sdf.parse(String.valueOf(l2.getDate()));

             } catch (ParseException e) {

                e.printStackTrace();
            }

            if(d1 != null && d1.after(d2)){

                return -1;

            }else{

                return 1;}
            }

        return 0;

##error "unexpected token"///或者如果在这里执行某些操作,它会将整个 block ## 显示为错误:

第二个参数错误

找到:java.util.comparator(D)

必需:java.util.comparator(Object)

    });

    return list;

}

有人可以帮我解决这个问题吗?提前致谢

最佳答案

尝试改变Collections.sort(list, new Comparator<D>() {Collections.sort(list, new Comparator<Object>() {

关于java - 如何根据日期对回收者 View 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43438190/

相关文章:

java - 如何从虚拟数字键盘中获取小数点?

android - 主机卡仿真 - 是否可以将字符串从一部手机传输到另一部手机?

android - 自定义操作 Intent 在与我从中单击的应用程序相同的上下文中打开我的应用程序

java - 如何使用集合框架在java中实现以下数据结构

java - 在 Java 中迭代列表的方法

java - 如何使用@GetMapping按id加载数据

java - Eclipse/NetBeans 和 Maven 集成

java - 寻找 Maven Google App Engine 项目的原型(prototype)

java - 我需要为Android Studio 4.0.1下载哪个版本的Gradle版本

c# - AsReadOnly 是否返回集合的副本?