И наоборот: сортировка источника данных приведет к упорядочению ArrayAdapter.
Полагаю, вы уже делали что-то подобное раньше.
ArrayList<PercentChangeComparator> quotes = getQuotesFromSomewhere();
QuotesAdapter quotesAdapter = new QuotesAdapter(this, R.layout.xxx, quotes);
Затем, если вы отсортировали кавычки, уведомление адаптера об изменении набора данных должно отсортировать список
Collections.sort(quotes, new PercentChangeComparator());
quotesAdapter.notifyDataSetChanged();
Это работает для меня, надеюсь, это поможет.
Одна важная вещь: если вы воссоздаете исходный массив ( в кавычках в этом конкретном примере), адаптер не будет читать дальнейшие изменения. Таким образом, если вам нужно изменить содержимое вашего ListView, выполните:
quotes.clear();
quotes.add(...);
quotes.add(...);
Кроме того, убедитесь, что вы правильно внедрили Компаратор. Если вы выполните это
Collections.sort(quotes, new PercentChangeComparator());
и кавычки не отсортированы, тогда проблема связана не с адаптером, а с компарацией.