I have RecyclerView
, i want to open AlertDialog
when item of RecyclerView
is Clicked, I'm trying to follow the concept of This java based Question but it didn't worked for me
My Adapter
class OperationAdapter (val context: Context,private val arrayList: ArrayList <Operations>):
RecyclerView.Adapter <OperationAdapter.Holder> () {
companion object {
val TAG: String = OperationAdapter::class.java.simpleName
}
override fun onCreateViewHolder (parent: ViewGroup, viewType: Int): Holder {
return Holder (LayoutInflater.from (parent.context ).inflate (R.layout.operaitemlist , parent, false))
}
override fun getItemCount (): Int = arrayList. size
override fun onBindViewHolder (holder: Holder, position: Int) {
val opera = arrayList[position]
holder.setData(opera, position)
}
inner class Holder (itemView: View): RecyclerView.ViewHolder (itemView) {
private var currentOpera: Operations? = null
private var currentPosition: Int = 0
init {
itemView.cardview.setOnClickListener {
currentOpera?.let {
AlertDialog.Builder(context)
.setTitle("My Title")
.setMessage("My Message")
.create()
.show()
}
}
//the end of the init
}
//getting data from Operations and bind it into View
fun setData(operation: Operations?, position: Int) {
operation?.let {
itemView.txtphonenumber.text = operation.phone
itemView.txttime.text = operation.etime
}
this.currentOpera = operation
this.currentPosition = position
}
}
Set up the recycleview
//set up the recycleview
mRecyclerView.setHasFixedSize (true)
mRecyclerView. layoutManager = LinearLayoutManager(this)
//adapter
val adapter = OperationAdapter(applicationContext,arrayList)
adapter.notifyDataSetChanged()
mRecyclerView.adapter = adapter
Please any suggestion