Борюсь с проблемой и перечитал почти все темы по этой ситуации, но правильного решения для своего случая не нашел. Я буду признателен за все предложения. В моем случае я создаю тестовое приложение и записываю результаты в базу данных, а затем пытаюсь получить сводку результатов в ListView. Сначала с пустым списком в качестве глобальной переменной я инициирую ArrayList
ArrayList<Results> updatedList = new ArrayList<>();
Затем в onCreateView я запускаю адаптер с пустым списком. У меня есть обычный CustomAdapter.
ProfileArrayAdapter arrayAdapter = новый ProfileArrayAdapter (getContext(), 0, updatedList);
А в другом методе я обновляю свой объект новыми данными и добавляю в arrayAdapter, но, к сожалению, я перепробовал все возможные способы, но в адаптер добавляются только последние значения, а предыдущие удаляются. Я даже использую notifyDataSetChanged. Возможно, цикл for может быть решением, но с увеличением количества элементов это станет проблемой. Пожалуйста, дайте мне несколько советов по этому вопросу.
Results aResults = new Results (testIdString, testTypeString, numberOfCorrectAnswers, numberOfFalseAnswers, numberOfEmptyAnswers);
arrayAdapter.add(aResults);
arrayAdapter.notifyDataSetChanged();
Изменить: Решение. Проблема заключалась в том, что каждый раз, когда фрагмент вызывается TabAdapter для fragmentPager, список обновляется. В Tabadapter я изменил новый StatisticalFragment на
СтатистикаFragment = StatisticsFragment.newInstance(StatisticsFragment.updatedList);
Затем в FragmentActivity я использовал putParcelableArrayList для передачи массива в новый фрагмент. Для этого я реализовал класс Parcelable в своем классе результатов. Я надеюсь, что это решение поможет кому-то еще.