Как сравнить Date и Boolean одновременно в одном и том же сравнении и поставить с истинными логическими значениями down и false верхний в Android? - PullRequest
0 голосов
/ 24 октября 2018

Я создаю приложение для событий, в котором перечислены все события.

У меня проблема в том, что, когда событие заканчивается, оно продолжает работать, поскольку оно было отсортировано по времени, если следующее событие прошло через неделю.Вот так: enter image description here

Итак, событие, которое закончилось, нужно убрать, а также отсортировать по дате.

Как я могу это сделать?

Я пытался сортировать по дате и логически, но не получилось.Или мне нужно создать два массива для завершенных и предстоящих событий?

Если кто-то знает, как это сделать, скажите, пожалуйста, вы экономите мой день.

Мой код, который сейчас сортируется:

Collections.sort(eventsList, new Comparator<TimetableEvent>() {

                @Override
                public int compare(TimetableEvent arg0, TimetableEvent arg1) {
                    SimpleDateFormat format = new SimpleDateFormat(
                            "dd.MM.yyyy' klo 'HH.mm");
                    int compareResult = 0;
                    try {
                        Date arg0Date = format.parse(arg0.getDateTime());
                        Date arg1Date = format.parse(arg1.getDateTime());

                        compareResult = arg0Date.compareTo(arg1Date);




                    } catch (ParseException e) {
                        e.printStackTrace();
                        compareResult = arg0.getDateTime().compareTo(arg1.getDateTime());
                    }
                    return compareResult;
                }
            });

1 Ответ

0 голосов
/ 24 октября 2018

Просто измените свой метод compare(), чтобы, если событие закончилось, а другое нет, оно возвращалось без сравнения даты:

@Override
public int compare(TimetableEvent arg0, TimetableEvent arg1) {
    SimpleDateFormat format = new SimpleDateFormat(
            "dd.MM.yyyy' klo 'HH.mm");
    int compareResult = 0;

    if (arg0.isOver() && !arg1.isOver()) {
        return 1;
    }
    if (!arg0.isOver() && arg1.isOver()) {
        return -1;
    }

    try {
        Date arg0Date = format.parse(arg0.getDateTime());
        Date arg1Date = format.parse(arg1.getDateTime());

        compareResult = arg0Date.compareTo(arg1Date);




    } catch (ParseException e) {
        e.printStackTrace();
        compareResult = arg0.getDateTime().compareTo(arg1.getDateTime());
    }
    return compareResult;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...