Although I get no error messages when clicking an item on the screen, the app does not move to the next fragment. I have tried basic troubleshooting, such as restarting android studio and rebuilding my project, with no success
Adapter class
class AllCharactersAdapter: RecyclerView.Adapter<AllCharactersAdapter.CharacterViewHolder>() {
inner class CharacterViewHolder(val binding: AllCharactersListItemBinding) :
RecyclerView.ViewHolder(binding.root)
private val differCallback = object : DiffUtil.ItemCallback<CharactersItem>() {
override fun areItemsTheSame( oldItem: CharactersItem, newItem: CharactersItem): Boolean {
return oldItem.char_id == newItem.char_id
}
override fun areContentsTheSame(oldItem: CharactersItem, newItem: CharactersItem): Boolean {
return oldItem == newItem
}
}
val differ = AsyncListDiffer(this, differCallback)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CharacterViewHolder {
return CharacterViewHolder(
AllCharactersListItemBinding.inflate(
LayoutInflater.from(parent.context),
parent,
false
)
)
}
override fun onBindViewHolder(holder: CharacterViewHolder, position: Int) {
val binding = holder.binding
val character = differ.currentList[position]
holder.itemView.apply {
Glide.with(this).load(character.img).into(binding.imgCharactersRecyclerViewImage)
binding.tvCharactersRecyclerViewTitle.text = character.name
setOnClickListener {
onItemClickListener?.let { it }
}
}
}
override fun getItemCount(): Int {
return differ.currentList.size
}
private var onItemClickListener: ((CharactersItem) -> Unit)? = null
fun setOnItemClickListener(listener: (CharactersItem) -> Unit) {
onItemClickListener = listener
}
Fragment's part where onItemClickListener is being used
private fun setupAllCharactersRecyclerView() {
allCharactersAdapter = AllCharactersAdapter()
binding.rvAllCharacters.apply {
adapter = allCharactersAdapter
layoutManager = LinearLayoutManager(activity)
}
allCharactersAdapter.setOnItemClickListener {
val bundle = Bundle().apply {
putSerializable("character", it)
}
findNavController().navigate(
R.id.action_allCharactersFragment_to_characterDetailsFragment,
bundle
)
}
}
Any ideas as to why?