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