来自firebase的recyclerview onClick getkey

如何在RecyclerView获取kotlin中的密钥以将其发送到其他活动? 我尝试使用getKey()position但它不起作用。

这是我的代码:

 class RecyclerAdapter (val userlist:ArrayList,ccc: Context): RecyclerView.Adapter() { var mcontext =ccc val Postdata = java.util.ArrayList() lateinit var ref:DatabaseReference override fun getItemCount(): Int { return userlist.size } override fun onBindViewHolder( holder: ViewHolder?, position: Int) { val user: RecyClass = userlist[position] ref = FirebaseDatabase.getInstance().getReference(user.toString()) holder?.txtviewdesc?.text = user.desc Picasso.with(mcontext).load(user.image).into(holder?.imageviewx) holder?.setOncustomcilcklistner(object :Custumclicklistner33{ override fun oncustomOnClickListner(view: View, pos: Int) { } }) } override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): ViewHolder { this.Postdata this.mcon val v = LayoutInflater.from(parent?.context).inflate(R.layout.layoutrcview,parent,false) return ViewHolder(v,mcon,userlist) } class ViewHolder(itemview: View,ccc2:Context,userlist: ArrayList): RecyclerView.ViewHolder(itemview), View.OnClickListener{ var mCustIemClick5: Custumclicklistner33?=null var txtviewdesc: TextView var mcon =ccc2 var userdata =userlist var imageviewx: ImageView init { this.userdata this.mcon txtviewdesc = itemview.findViewById(R.id.editTextdesc) imageviewx = itemview.findViewById(R.id.imgvw) itemview.setOnClickListener(this) } fun setOncustomcilcklistner(customclick5: Custumclicklistner33){ this.mCustIemClick5=customclick5 } override fun onClick(view: View?) { this.mCustIemClick5!!.oncustomOnClickListner(view!!,adapterPosition) val pos = adapterPosition val ref =FirebaseDatabase.getInstance().getReference(pos.toString()).key.toString() Toast.makeText(mcon,ref,Toast.LENGTH_LONG).show() var postDetail = this.userdata[pos] val kkk = Intent(this.mcon,ProfileActivity::class.java) kkk.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) this.mcon.startActivity(kkk) } } } 

fun onclick采取下一个活动,但它需要后的key 。 如何得到它? getrefgetref不能在fun onclick但它适用于bindviewholder

您需要使用PostData [position]来获取当前位置的对象,然后从该对象中获取可引用的键/字段。