Recyclerview-点击的实现

本文介绍了一种自定义RecyclerView点击事件的方法。通过创建一个点击监听接口并将其绑定到ViewHolder中的视图上,当用户点击列表项时可以触发相应事件。文章提供了完整的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    Recyclerview 的点击事件需要我们自己定义,我就做了一个自己定义的一个点击事件,主要看红色部分,红色部分是我自己写的点击事件,然后定义好点击事件

我们就可以去调用实现了,直接看代码吧

package com.xxx.text.adapter;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.nostra13.universalimageloader.core.ImageLoader;
import com.xxx.text.R;
import com.xxx.text.bean.Bean;


public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyHolder> {
    private Context context;
    private Bean bean;
    private OnItemClickListener mOnItemClickListener;
    public MyAdapter(Context context, Bean bean) {
        this.context = context;
        this.bean = bean;
    }
    public interface OnItemClickListener{
        void onItemClick(View view,int position);
    }
    public void setOnItemClickListener(OnItemClickListener mOnItemClickListener){
        this.mOnItemClickListener = mOnItemClickListener;
    }
    @Override
    public MyHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        MyHolder holder = new MyHolder(LayoutInflater.from(context).inflate(R.layout.rec_litem, parent, false));
        return holder;
    }
    @Override
    public void onBindViewHolder(final MyHolder holder, int position) {
        holder.rec_mz.setText(bean.getData().getGoodsBrief().get(position).getEfficacy());
        holder.rec_jq.setText("¥"+(int) bean.getData().getGoodsBrief().get(position).getShop_price());
        ImageLoader.getInstance().displayImage(bean.getData().getGoodsBrief().get(position).getGoods_img(),holder.image);
        if (mOnItemClickListener != null){
            holder.image.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    int position = holder.getLayoutPosition(); // 1
                    mOnItemClickListener.onItemClick(holder.itemView,position); // 2
                }
            });
        }
    }
    @Override
    public int getItemCount() {
        return bean.getData().getGoodsBrief().size() ;
    }
    class MyHolder extends RecyclerView.ViewHolder {

        TextView rec_mz;
        TextView rec_jq;
        ImageView image;

        public MyHolder(View itemView) {
            super(itemView);
            rec_mz = itemView.findViewById(R.id.rec_mz);
            rec_jq = itemView.findViewById(R.id.rec_jq);
            image = itemView.findViewById(R.id.rec_tp);
        }
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值