简体   繁体   English

如何在 Kotlin 的 recyclerView 的项目中添加 onClickListener?

[英]How to add onClickListener to the items of the recyclerView in Kotlin?

I am using recyclerView to show data from firebase database and I want to handle clicks, Now the important part is that I want to know the number that was clicked in order to test google play in app billing before showing the next activity I mean user should click item number one then pay to see information number 1 and so on Any help, please?我正在使用 recyclerView 显示来自 firebase 数据库的数据,我想处理点击,现在重要的部分是我想知道点击的数字,以便在显示下一个活动之前在应用计费中测试 google play 我的意思是用户应该单击项目编号 1 然后付款以查看信息编号 1 等等 有什么帮助吗?

//my adapter

class MyAdapter(
    private val arrayList: ArrayList<Long>
) :
    RecyclerView.Adapter<MyAdapter.MyViewHolder>() {

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
        val view =
            LayoutInflater.from(parent.context)
                .inflate(R.layout.layout_item, parent, false)
        return MyViewHolder(view)
    }

    override fun getItemCount() = arrayList.size

    override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
        holder.number.text = arrayList[position].toString()
    }

    class MyViewHolder(view: View) :
        RecyclerView.ViewHolder(view) {
        val number = view.findViewById<View>(R.id.singleNumberId) as TextView
    }

}

Here is a small example I have of registering a click for a RecyclerView adapter item:这是我为 RecyclerView 适配器项注册单击的一个小示例:

class PatientListAdapter : ListAdapter<Patient, PatientListAdapter.PatientViewHolder>(co.za.abcdefgh.viewmodels.PatientListViewModel.DiffItemCallback) {

    // this property will be used to set the onclick callback for the entire adpater
    var onPatientSelectedCallback: PatientSelectedCallback? = null

    override fun onCreateViewHolder(
        parent: ViewGroup,
        viewType: Int
    ): PatientViewHolder {
        val view = LayoutInflater.from(parent.context)
            .inflate(R.layout.item_patient, parent, false) as View
        return PatientViewHolder(view)
    }

    override fun onBindViewHolder(holder: PatientViewHolder, position: Int) {
        holder.view.item_patient_name.text = getItem(position).toString()
        holder.view.item_patient_folderNumber.text = getItem(position).folderNumber

        // lets set our on click for each viewholder here
        holder.view.item_patient_info_card.setOnClickListener {
            // the secret sauce .... getItem(holder.adapterPosition)
            onPatientSelectedCallback?.onPatientSelected(getItem(holder.adapterPosition))
        }
    }

    class PatientViewHolder(val view: View) : RecyclerView.ViewHolder(view)

    // interface which defines a method signature that will called when a item in the adpater is selected
    interface PatientSelectedCallback {
        fun onPatientSelected(patient: Patient)
    }
}

and then wherever you use the adapter after instantiating simply do:然后在实例化后无论您在哪里使用适配器,只需执行以下操作:

val viewAdapter = PatientListAdapter()

viewAdapter.onPatientSelectedCallback =
    object : PatientListAdapter.PatientSelectedCallback {
        override fun onPatientSelected(patient: Patient) {
            // do something with the chosen item
            patientViewModel.setPatient(patient)
        }
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何将项目添加到回收站视图 Kotlin - How to add Items to a recyclerview Kotlin 如何使用 onClickListener 从 EditText、ImageView 向 RecyclerView 添加项目? - How to add items to RecyclerView from EditText, ImageView with onClickListener? 如何在 Android 的 RecyclerView 上添加 onClickListener? - How to add onClickListener on a RecyclerView in Android? RecyclerView onClickListener 未触发(Kotlin) - RecyclerView onClickListener not firing (Kotlin) 如何在AsyncTask中的RecyclerView项上设置OnClickListener - How to set OnClickListener on RecyclerView items inside AsyncTask 如何为recyclerview中动态添加的项目设置OnclickListener? - How to set OnclickListener for the dynamically added items in recyclerview? 如何使用 ViewModel Android Kotlin 将项目添加到 RecyclerView - How to add Items to RecyclerView using a ViewModel Android Kotlin 如何在 RecyclerView 中添加 OnClickListener 和动画? - How do I add an OnClickListener And An Animation In A RecyclerView? 如何使用数据绑定在 RecyclerView 中添加 onClickListener - How to add an onClickListener in RecyclerView using data binding 如何根据项目position在recyclerView中添加OnClickListener - How to add OnClickListener in recyclerView according to the item position
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM