@foonfyrick

Почему ресайл вью отображает всего один итем и переписывает его?

2 часа уже не могу разобраться, если в я в onCreate в ручную заполняю массив, то появляется несколько итемов, а если я через кнопку добавляю, то всегда один и тот же перезаписывается, если захожу в другое активити и возвращаюсь то и вовсе все пропадает
//Когда возвращаюсь в мэйн, получаю эти значения так:
//getArgs() возвращает navArgs

        val args = getArgs()
        if (args!=null){
            list.add(ModelList(args.header,args.body))
        }

        val recyclerView = idrecyclerView
        recyclerView.layoutManager = LinearLayoutManager(
            requireContext(),
            LinearLayoutManager.VERTICAL,
            false
        )

        val adapter = AdapterCustom(list)
        recyclerView.adapter = adapter

//адаптер
class AdapterCustom(val listOfItems:List<ModelList>):RecyclerView.Adapter<AdapterCustom.ViewHolder>() {
    class ViewHolder(itemView:View):RecyclerView.ViewHolder(itemView) {
        var header = itemView.item_tvHeader
        var body = itemView.item_tvBody
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        val createdViewHolder = LayoutInflater.from(parent.context).inflate(R.layout.item,parent,false)
        return ViewHolder(createdViewHolder)
    }

    override fun getItemCount():Int = listOfItems.size

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        val modelList = listOfItems[position]
        holder.header.text = modelList.header
        holder.body.text = modelList.body
    }
}
  • Вопрос задан
  • 34 просмотра
Решения вопроса 1
@foonfyrick Автор вопроса
Ошибка была в том, что получение аргументов (navArgs), нужно было вынести в onCreate, поскольку, при onResume каждый раз один и тот же объект передавался, помимо этого list нужно было создавать синглтоном, потому-что, каждый раз, при сворачивание и разворачивании приложения отрабатывал onCreate и соответственно создавался заново экземпляр списка.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы