Cómo ordenar Fecha en un Arraylist personalizado en Android Studio?

Prabhav Pandya:

Estoy añadiendo una característica en mi aplicación que permite a las entradas de llenado por el usuario para fechas pasadas, si hoy es 14/03/2020 entonces se le permite rellenar las entradas para 03/10/2020 (o cualquier otra fecha). Pero estoy teniendo un problema con la clasificación de mi ArrayList tal que todas las entradas con mismas fechas están juntos en el ArrayList.

Muestro las entradas para el usuario en un ListView personalizada y así hacer que mi aplicación de usuario amigable Quiero hacer todas esas entradas con la misma fecha a aparecer juntos.

Tengo un ArrayList costumbre que acepta un nombre de Gastos (Cadena), Cantidad (String) y fecha (String)

ArrayList<ExpenseData> customArrayList=new ArrayList<ExpenseData>();

Si necesita cualquier otra información, pregunte ... Gracias!

DB377:

Se puede utilizar a continuación método para ordenar la lista por fecha.

 Collections.sort(list, (item1, item2) -> {
            Date date1 = stringToDate(item1.getDate());
            Date date2 = stringToDate(item2.getDate());

            if (date1 != null && date2 != null) {
                boolean b1;
                boolean b2;
                if (isAscending) {
                    b1 = date2.after(date1);
                    b2 = date2.before(date1);
                }else {
                    b1 = date1.after(date2);
                    b2 = date1.before(date2);
                }

                if (b1 != b2) {
                    if (b1) {
                        return -1;
                    }
                    if (!b1) {
                        return 1;
                    }
                }
            }
            return 0;
        });

public static Date stringToDate(String strDate) {
        if (strDate == null)
            return null;

        // change the date format whatever you have used in your model class.
        SimpleDateFormat format = new SimpleDateFormat("MMM dd, yyyy hh:mm:ss a", Locale.US);
        Date date = null;
        try {
            date = format.parse(strDate);
            System.out.println(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=282028&siteId=1
Recomendado
Clasificación