@max_vr

Как заставить адаптер брать данные из ArrayList в обратном порядке?

Есть адаптер, который берет данные из ArrayList. Нужно либо сделать так, чтоб адаптер брал объекты из arraylist в обратном порядке, либо отсортировать сам ListView подобным образом. Заранее спасибо
  • Вопрос задан
  • 517 просмотров
Решения вопроса 1
@bot8
Android noob
ArrayList<String> List = new ArrayList<>(); // Исходный ArrayList
        ArrayList<String> newList = new ArrayList<>(); 
        List.add("Первый");  // Заполнил List
        List.add("Второй");
        List.add("Третий");
        
        for (int i=List.size()-1; i>=0; i--) // Перевернул List и засунул 
            newList.add(List.get(i));        // в newList
      
        for(String str : newList)
            System.out.println(str);


или так

public class MyAdapter extends ArrayAdapter<String> {
        private List<String> list;

    public MyAdapter(Context context, int resource, List<String> list) {
        super(context, resource, list);
        this.list=list;

    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public String getItem(int position) {
        return list.get((position-list.size())*-1-1);
    }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@onepavel
Консультация и разработка мобильных приложений
Collections.reverse(arrayList);
Ответ написан
Комментировать
jamakasi666
@jamakasi666 Куратор тега Java
Просто IT'шник.
Отнаследоваться от ArrayList и переопределить метод get? Или добавить новый метод getReverse ? Не совсем уловил проблему Вашу, сложность в том что нельзя менять ArrayList или адаптер?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы