У меня проблема с адаптацией RecyclerView к фрагменту. У меня есть Навигационный ящик, который, в свою очередь, имеет TabLayout, и когда я нажимаю на вкладку, я перехожу к этому RecyclerView. У меня нет возможности его адаптировать, теперь я получаю сообщение об ошибке «Адаптер свойства lateinit не был инициализирован», но я пробовал тысячу разных способов.
MainAdapter.kt
class MainAdapter(private val context: Context) : RecyclerView.Adapter<MainAdapter.MainViewHolder>()
{
private var dataList = mutableListOf<Usuario>()
fun setListData(data:MutableList<Usuario>){
dataList = data
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MainViewHolder {
val view = LayoutInflater.from(context).inflate(R.layout.item_row, parent, false)
return MainViewHolder(view)
}
override fun getItemCount(): Int {
return if(dataList.size > 0){
dataList.size
}else{
0
}
}
override fun onBindViewHolder(holder: MainViewHolder, position: Int) {
val user = dataList[position]
holder.bindView(user)
}
inner class MainViewHolder(itemView: View): RecyclerView.ViewHolder(itemView){
fun bindView(user: Usuario){
Glide.with(context).load(user.imageUrl).into(itemView.circleImageView)
itemView.txt_title.text = user.nombre
itemView.txt_desc.text = user.descripcion
}
}
}
FragmentNotification.kt
class NotificacionesFragment : Fragment(){
private lateinit var adapter: MainAdapter
private lateinit var _view: View
private lateinit var rv: RecyclerView
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
_view = inflater.inflate(R.layout.notificaciones, container, false)
// val viewPager = x.findViewById<View>(R.id.viewPager) as ViewPager
rv = _view.findViewById(R.id.rv) as RecyclerView
rv.adapter = MainAdapter (requireContext())
_view.rv.layoutManager = LinearLayoutManager(requireContext())
_view.rv.adapter = adapter
val dummyList = mutableListOf<Usuario>()
dummyList.add(Usuario("lala","lala","lala"))
adapter.setListData(dummyList)
adapter.notifyDataSetChanged()
return _view
}
}