Я не пробовал этот метод, но надеюсь, что он работает.Предполагая, что вы используете RecyclerView
для отображения списка (потому что это намного проще в recyclerView)
Когда вы получаете первые десять элементов с сервера и решаете отсортировать их. Допустим, по имени (по возрастанию).здесь нужно использовать два ArrayList: 1: finalArrayList: - который содержит весь список 2: updateArrayList: - который имеет последние десять результатов
при выборе сортировки (onButtonClick)
updateArrayList = new ArrayList<>();
updateArrayList.addAll(finnalArrayList);
Collections.sort(updateArrayList, new Comparator<StoreModel>() {
public int compare(StoreModel obj1, StoreModel obj2) {
// ## Ascending order
if (sortingBy == 0) {
return obj1.getName().compareToIgnoreCase(obj2.getName());
}});
adapter.clear();
adapter.addAll(updateArrayList);
Запускайте этот код только при нажатии кнопки
Теперь, когда вы прокрутите вниз и получите дополнительные данные
updateArrayList = new ArrayList<>();
updateArrayList.add(StoreModel)//Add the latest ten data from the response
и отсортируете их перед отправкой в адаптер
Collections.sort(updateArrayList, new Comparator<StoreModel>() {
public int compare(StoreModel obj1, StoreModel obj2) {
// ## Ascending order
if (sortingBy == 0) {
return obj1.getName().compareToIgnoreCase(obj2.getName());
}});
adapter.addAll(updateArrayList);
надеюсь, что вы получили это и надеюсь, что это работает.