Reputation: 73
I am making a grid layout with the help of Recyclerview and I have already added four Recyclerview items in a grid programmatically and now I want to navigate to different fragments when I click on different items. I am unable to find any appropriate way to do so.
Upvotes: 0
Views: 1044
Reputation: 73
override fun onBindViewHolder(holder: StPanelHomeViewHolder, position: Int) {
val item = dataset[position]
holder.cardViewNavigation[0].setOnClickListener {
val action =
StPanelHomeFragmentDirections.actionStPanelHomeFragmentToStPanelPayFeeFragment()
holder.view.findNavController().navigate(action)
}
}
Upvotes: 0
Reputation: 1084
You should use if condition in onBindViewHolder of your adpter class as bellow:
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.item.setOnClickListener {
when (position) {
0 -> {
//navigate to first fragment}
}
1 -> {
//navigate to second fragment}
}
2 -> {
//navigate to third fragment}
}
3 -> {
//navigate to fourth fragment}
}
}
}
}
Upvotes: 1
Reputation: 292
Try below code
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
holder.textViewName.text = seriesList[position].name
holder.textViewNameDesc.text = seriesList[position].desc
holder.textViewName.setOnClickListener {
Toast.makeText(context,"clicked",Toast.LENGTH_SHORT).show()
}
}
You need to add above code in your recycler adapter
Upvotes: 0