【发布时间】:2019-06-17 19:59:16
【问题描述】:
我有RecyclerView,我想在单击RecyclerView 的项目时打开AlertDialog,我正在尝试遵循This java based Question 的概念,但它对我不起作用
我的适配器
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
mRecyclerView.setHasFixedSize (true)
mRecyclerView. layoutManager = LinearLayoutManager(this)
//adapter
val adapter = OperationAdapter(applicationContext,arrayList)
adapter.notifyDataSetChanged()
mRecyclerView.adapter = adapter
请给点建议
【问题讨论】:
标签: android kotlin android-recyclerview