во FragmentA () Я получаю данные из ранее фрагмента
class FragmentA():Fragment() {
private lateinit var personList: MutableList<Person>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
arguments?.let {
personList = it.getParcelableArrayList<Person>("person") as MutableList<Person>
}
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
if(personList.isEmpty()){
showEmptyContainer()
}else{
recyclerAdapter.setItems(personList)
}
}
Теперь этот код работает, когда я открываю FragmentA (), но теперь, если я go из этого фрагмента в FragmentB () и вернись, мои данные дублируются. Итак, я попытался очистить массив и настроить его снова
class FragmentA():Fragment() {
private lateinit var personList: MutableList<Person>
private var backupList:MutableList<Person> = mutableListOf()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
arguments?.let {
personList = it.getParcelableArrayList<Person>("person") as MutableList<Person>
}
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
if(personList.isEmpty()){
showEmptyContainer()
}else{
backupList.clear()
backupList = personList
recyclerAdapter.setItems(backupList)
}
}
Делая это, он работает при возврате, но по какой-то причине он показывает пустой контейнер, когда я делаю это дважды, поэтому мой вопрос
Как сохранить этот фрагмент personList при навигации вперед и нажатии кнопки назад?
Спасибо