Android I';我在使用RecyclerView,如何为其添加意图?

Android I';我在使用RecyclerView,如何为其添加意图?,android,android-listview,listview-adapter,Android,Android Listview,Listview Adapter,我正在使用RecyclerView,我想在其中添加一个单击侦听器。我怎样才能做到这一点?这是我的适配器类供参考 class ItemAdapter(var context:Context, var list:ArrayList<Items>): RecyclerView.Adapter<RecyclerView.ViewHolder>() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int

我正在使用RecyclerView,我想在其中添加一个单击侦听器。我怎样才能做到这一点?这是我的适配器类供参考

class ItemAdapter(var context:Context, var list:ArrayList<Items>): RecyclerView.Adapter<RecyclerView.ViewHolder>() {

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
    var v:View=LayoutInflater.from(context).inflate(R.layout.item_row,parent,false)
    return ItemHolder(v)
}

override fun getItemCount(): Int {
    return list.size
}

override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
    (holder as ItemHolder).bind(list[position].name,list[position].price,list[position].picture,list[position].id)
}

class ItemHolder(itemView: View): RecyclerView.ViewHolder(itemView){

        fun bind(n:String,p:Double,u:String,item_id:Int)
        {
            itemView.item_name.text=n
            itemView.item_price.text=p.toString()+" "+"USD"
            var web:String=("http://192.168.0.101/web%20Sales/images/"+u)
            web=web.replace(" ","%20")
            //Picasso.with(itemView.context).load(web).into(itemView.item_photo)
            Glide.with(itemView.context).load(web).into(itemView.item_photo).toString()
            itemView.item_add_photo.setOnClickListener{
                UserInfo.itemId=item_id


                var obj= QtyFragment()
                var manager=(itemView.context as Activity).fragmentManager
                obj.show(manager, "Qty")
            }
            itemView.det_btn.onItem

        }
    }

}
class ItemAdapter(var-context:context,var-list:ArrayList):RecyclerView.Adapter(){
override fun onCreateViewHolder(父级:ViewGroup,viewType:Int):RecyclerView.ViewHolder{
变量v:View=LayoutInflater.from(上下文)。充气(R.layout.item_行,父项,false)
退货物品持有人(v)
}
重写getItemCount():Int{
返回列表。大小
}
覆盖onBindViewHolder(holder:RecyclerView.ViewHolder,位置:Int){
(持有人作为项目持有人)。绑定(列表[position]。名称,列表[position]。价格,列表[position]。图片,列表[position]。id)
}
类ItemHolder(itemView:View):RecyclerView.ViewHolder(itemView){
趣味绑定(n:String,p:Double,u:String,item_id:Int)
{
itemView.item\u name.text=n
itemView.item_price.text=p.toString()+“”+“USD”
变量web:String=(“http://192.168.0.101/web%20Sales/images/“+u)
web=web.replace(“,“%20”)
//毕加索.with(itemView.context).load(web.into)(itemView.item\u照片)
Glide.with(itemView.context).load(web).into(itemView.item_photo.toString())
itemView.item_添加_photo.setOnClickListener{
UserInfo.itemId=item\u id
var obj=QtyFragment()
变量管理器=(itemView.context作为活动)。fragmentManager
目标显示(经理,“数量”)
}
itemView.det_btn.onItem
}
}
}

如果要将Click Listener设置为
RecyclerView
中的项目,可以从
ItemHolder
类中执行此操作-

class ItemHolder(itemView: View): RecyclerView.ViewHolder(itemView){

var currentItem: Items? = null
var currentPosition: Int = 0

init{

    itemView.item_add_photo.setOnClickListener {

            currentItem?.let {
                val message: String = "My item is: " + currentItem!!.name

                val intent = Intent(context, YourActivity::class.java)
                context.startActivity(intent)
            }
        }
}

    fun bind(n:String,p:Double,u:String,item_id:Int)......

}

如果要将Click Listener设置为
RecyclerView
中的项目,可以从
ItemHolder
类中执行此操作-

class ItemHolder(itemView: View): RecyclerView.ViewHolder(itemView){

var currentItem: Items? = null
var currentPosition: Int = 0

init{

    itemView.item_add_photo.setOnClickListener {

            currentItem?.let {
                val message: String = "My item is: " + currentItem!!.name

                val intent = Intent(context, YourActivity::class.java)
                context.startActivity(intent)
            }
        }
}

    fun bind(n:String,p:Double,u:String,item_id:Int)......

}

尝试这种方式。单击itemView

itemView.setOnClickListener(new View.OnClickListener() { 
  @Override 
  public void onClick(View v) {
    //enter code here
  } 
});

尝试这种方式。单击itemView

itemView.setOnClickListener(new View.OnClickListener() { 
  @Override 
  public void onClick(View v) {
    //enter code here
  } 
});
在适配器中:

class ItemHolder(itemView: View): RecyclerView.ViewHolder(itemView){
...
   init {
            itemView.setOnClickListener{
                onItemClick?.invoke(list[adapterPosition])
            }
        }
...
adapter.onItemClick = { item -> 
     //do something
)) 
在设置适配器的活动或片段中:

class ItemHolder(itemView: View): RecyclerView.ViewHolder(itemView){
...
   init {
            itemView.setOnClickListener{
                onItemClick?.invoke(list[adapterPosition])
            }
        }
...
adapter.onItemClick = { item -> 
     //do something
)) 
在适配器中:

class ItemHolder(itemView: View): RecyclerView.ViewHolder(itemView){
...
   init {
            itemView.setOnClickListener{
                onItemClick?.invoke(list[adapterPosition])
            }
        }
...
adapter.onItemClick = { item -> 
     //do something
)) 
在设置适配器的活动或片段中:

class ItemHolder(itemView: View): RecyclerView.ViewHolder(itemView){
...
   init {
            itemView.setOnClickListener{
                onItemClick?.invoke(list[adapterPosition])
            }
        }
...
adapter.onItemClick = { item -> 
     //do something
)) 

是否要在recyclerview或recyclerview中添加侦听器?是否要在recyclerview或recyclerview中添加侦听器?请再次阅读问题!再读一遍这个问题!