Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android kotlin-RecyclerView找出在活动/片段中单击的项目内部的确切内容_Java_Android_Android Recyclerview_Kotlin - Fatal编程技术网

Java Android kotlin-RecyclerView找出在活动/片段中单击的项目内部的确切内容

Java Android kotlin-RecyclerView找出在活动/片段中单击的项目内部的确切内容,java,android,android-recyclerview,kotlin,Java,Android,Android Recyclerview,Kotlin,这是适配器: class ToplistAdapter(val context: Context, private val users: MutableList<Toplist>, val itemClick: (Toplist) -> Unit) : RecyclerView.Adapter<ToplistAdapter.ViewHolder>(){ override fun onBindViewHolder(holder: ViewHolder, po

这是适配器:

class ToplistAdapter(val context: Context, private val users: MutableList<Toplist>, val itemClick: (Toplist) -> Unit) : RecyclerView.Adapter<ToplistAdapter.ViewHolder>(){

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        val user = users[position]
        holder.percent.text = user.prozent
        Picasso.get().load(user.image).into(holder.imagee)

        holder.bind(users[position], context)
    }

    override fun getItemCount() = users.size

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

    class ViewHolder(itemView: View?, val itemClick: (Toplist) -> Unit) : RecyclerView.ViewHolder(itemView!!){

        val percent = itemView!!.text_percent
        val imagee = itemView!!.image_view

        fun bind(toplist: Toplist, context: Context){
            itemView.setOnClickListener {
                itemClick(toplist)
            }
        }
    }
}
我知道如何设置onClicklistener-inside
onBindViewHolder
查找是否单击了
text\u percent
image\u view
,但除了获取
用户ID
等之外,我如何在片段内部执行此操作

提前谢谢

编辑:

请求的数据模型类:

data class Toplist(
        val image: String,
        val prozent: String,
        val userid: Long
)

在适配器中创建ClickListener

   open interface ClickListener {
        fun onClick(position: Int)

    }
然后实现您的适配器

class ToplistAdapter(val context: Context, private val users: MutableList<Toplist>, val listener: ClickListener) : RecyclerView.Adapter<ToplistAdapter.ViewHolder>(){

   companion object {
        var clickListener: ClickListener? = null
    }


    override fun onBindViewHolder(holder: ViewHolder, position: Int) {

    clickListener = listener
    val user = users[position]
    holder.percent.text = user.prozent
    Picasso.get().load(user.image).into(holder.imagee)

    holder.bind(users[position], context)
    holder.imagee.setOnClickListener { 
        itemClick(users[position]) 
    }
   holder.imagee.setOnClickListener(object : View.OnClickListener {
            override fun onClick(v: View?) {
                if (clickListener != null)
                    clickListener?.onClick(position)
            }
        })



    }

在适配器中创建ClickListener

   open interface ClickListener {
        fun onClick(position: Int)

    }
然后实现您的适配器

class ToplistAdapter(val context: Context, private val users: MutableList<Toplist>, val listener: ClickListener) : RecyclerView.Adapter<ToplistAdapter.ViewHolder>(){

   companion object {
        var clickListener: ClickListener? = null
    }


    override fun onBindViewHolder(holder: ViewHolder, position: Int) {

    clickListener = listener
    val user = users[position]
    holder.percent.text = user.prozent
    Picasso.get().load(user.image).into(holder.imagee)

    holder.bind(users[position], context)
    holder.imagee.setOnClickListener { 
        itemClick(users[position]) 
    }
   holder.imagee.setOnClickListener(object : View.OnClickListener {
            override fun onClick(v: View?) {
                if (clickListener != null)
                    clickListener?.onClick(position)
            }
        })



    }

users.userid.toString()中的userid是未解析的引用,如何确定单击了text\u%还是text\u视图?为什么?我想你还没有完全理解我想要什么,我对这个问题做了一些编辑,并展示了数据模型,以防我把开放界面ClickListener放在哪里?我尝试了不同的地方,得到了一个错误:分类器“ClickListener”没有一个伴生对象,因此必须在这里初始化。还有:未解决的引用:itemClick我已经为此挣扎了好几个小时,我认为不可能找出片段中单击了什么item元素,而只是adapterview holder itemClick删除它是未解析的引用,我如何确定是否单击了文本百分比或文本视图?为什么?我想你还没有完全理解我想要什么,我对这个问题做了一些编辑,并展示了数据模型,以防我把开放界面ClickListener放在哪里?我尝试了不同的地方,得到了一个错误:分类器“ClickListener”没有一个伴生对象,因此必须在这里初始化。还有:未解决的引用:itemClick我已经为此苦苦挣扎了好几个小时,我认为不可能找出片段中单击了什么item元素,而只是adapterview holder itemClick删除它。使用onBindViewHolder onclick listener