Android cardview поместите конкретную карту в конец списка - PullRequest
0 голосов
/ 24 ноября 2018

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

В приведенном ниже коде сроки выполнения передаются через мой класс объекта задачи.После сравнения сроков выполнения (.getTaskDate) с текущей датой, я должен поставить здесь просроченную задачу внизу.

Внутри моего адаптера:

        //Overdue tasks
    String Currdate = new SimpleDateFormat("dd-MM-yyyy", Locale.getDefault()).format(new Date());

    if(Currdate.compareTo(tasks.getTaskDate())>0 )
    {
        taskViewHolder.cardView.setBackgroundColor(mContext.getResources().getColor(R.color.colorRed));


    }

Как мне реализовать эту функцию иэто сделано внутри MainActivity или моего адаптера?У меня есть аналогичная функция сортировки даты, которая сортирует дату в порядке возрастания внутри моей MainActivity:

    private static void sortDates(final List<TaskObject> listViewItems) {
    Collections.sort(listViewItems, new Comparator<TaskObject>() {
        DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");

        @Override
        public int compare(TaskObject t1, TaskObject t2) {

            try {
                return dateFormat.parse(t1.getTaskDate()).compareTo(dateFormat.parse(t2.getTaskDate()));
            } catch (ParseException e) {
                e.printStackTrace();
            }

            return 0;
        }
    });
}

enter image description here

1 Ответ

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

Просто поменяйте местами сортировку и все готово.Измените оператор возврата в компараторе на

return dateFormat.parse(t2.getTaskDate()).compareTo(dateFormat.parse(t1.getTaskDate()));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...