打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
RecyclerView点击事件
userphoto

2022.08.02 广东

关注

如果你想第一时间收到类似的文章

点击上面↑「爱开发」关注我们!

RecyclerView 是Android L版本中新添加的一个用来取代ListView的SDK,它的灵活性与可替代性比ListView更好。RecyclerView的强大这里就不说了。


RecyclerView


RecyclerView使用有点小小的不足,就是没有像ListView那样提供ClickListener和LongClickListener方法,需要我们手动去添加。这并不影响它的灵活性。

要实现RecyclerView的ClickListener和LongClickListener方法,我们可以用这种方式来实现:

在适配器adapter中定义接口,然后在onBindViewHolder中去为holder.itemView去设置相应的监听,最后回调我们设置的监听即可。

public class AikaifaAdapter extends RecyclerView.Adapter<AikaifaAdapter.AikaifaViewHolder> {    private Context mConttext;    private List<ShopCar.CarList> data;    //定义接口
    public interface OnItemClickListener {        void onItemClick(View view, int position);        void onItemLongClick(View view, int position);
    }    private OnItemClickListener mOnItemClickListener;    public AikaifaAdapter(Context context, List<ShopCar.CarList> data) {        this.mConttext = context;        this.data = data;
    }    public void setOnItemClickListener(OnItemClickListener mOnItemClickListener) {        this.mOnItemClickListener = mOnItemClickListener;
    }    @Override
    public AikaifaAdapter.AikaifaViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view;
        view = LayoutInflater.from(mConttext).inflate(R.layout.item_shopcart, parent, false);        return new AikaifaAdapter.AikaifaViewHolder(view);
    }    @Override
    public void onBindViewHolder(final AikaifaViewHolder holder, final int position) {
        holder.tv.setText(data.get(position).getProductName());        if (mOnItemClickListener != null) {
            holder.itemView.setOnClickListener(new View.OnClickListener() {                @Override
                public void onClick(View v) {                    int pos = holder.getLayoutPosition();
                    mOnItemClickListener.onItemClick(holder.itemView, position);
                }
            });

            holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {                @Override
                public boolean onLongClick(View v) {                    int pos = holder.getLayoutPosition();
                    mOnItemClickListener.onItemLongClick(holder.itemView, pos);                    return false;
                }
            });
        }
    }    @Override
    public int getItemCount() {        int count = (data == null ? 0 : data.size());        return count;
    }    class AikaifaViewHolder extends RecyclerView.ViewHolder {        private TextView tv;        public AikaifaViewHolder(View view) {            super(view);
            tv = (TextView) view.findViewById(R.id.tv_item_shopcart_shopname);
        }
    }

调用:

 mAdapter.setOnItemClickLitener(new OnItemClickLitener() {            @Override
            public void onItemClick(View view, int position) {               //点击事件
            }            @Override
            public void onItemLongClick(View view, int position) {             //长按事件
            }
        });

这样就完成了RecyclerView的点击事件了。

[END]

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
RecyclerView介绍
安卓开发笔记(十):升级ListView为RecylerView的使用
玩转仿探探卡片式滑动效果
你想知道的关于RecyclerView的秘密都在这里
为RecyclerView打造通用Adapter 让RecyclerView更加好用
RecyclerView适配器的超省写法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服