android RecyclerView item 点击事件


重点在适配器直接上代码:
/**
     * 全部类型适配器
     */
    public static class AllTypeAdapter extends RecyclerView.Adapter<AllTypeAdapter.ViewHolder> implements View.OnClickListener {
        private Context mContext;
        private List<AllTypeResponse.DataBean.ListBean> details_list = new ArrayList<>();
        //声明自定义的监听接口
        private OnCodeRecyclerviewItemClickListener mOncodeRecyclerviewItemClickListener = null;

        public AllTypeAdapter(Context context, OnCodeRecyclerviewItemClickListener mOnRecyclerviewItemClickListener) {
            this.mContext = context;
            this.mOncodeRecyclerviewItemClickListener = mOnRecyclerviewItemClickListener;
        }
        //添加数据
        public void addList(List<AllTypeResponse.DataBean.ListBean> mlist) {
            details_list.clear();
            details_list.addAll(mlist);
            notifyDataSetChanged();
        }
        //加载更多
        public void addMoreList(List<AllTypeResponse.DataBean.ListBean> mlist) {
            details_list.addAll(mlist);
            notifyDataSetChanged();
        }

        public AllTypeResponse.DataBean.ListBean getItem(int position) {
            return details_list.get(position);
        }

        @Override
        public int getItemCount() {
            return details_list == null ? 0 : details_list.size();
        }

        @Override
        public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.all_type_item, parent, false);
            view.setOnClickListener(this);
            return new ViewHolder(view);
        }

        @Override
        public void onBindViewHolder(ViewHolder holder, int position) {
            final AllTypeResponse.DataBean.ListBean code_detaisl_data = details_list.get(position);
            if (code_detaisl_data != null) {
                holder.tv_order.setText(String.valueOf(position + 1));
                holder.tv_all_data.setText(code_detaisl_data.getTitle());
                holder.itemView.setTag(position);//给view设置tag以作为参数传递到监听回调方法中
            }
        }

        @Override
        public void onClick(View v) {
            //将监听传递给自定义接口
            mOncodeRecyclerviewItemClickListener.onItemClickListener(v, ((int) v.getTag()));
        }

        class ViewHolder extends RecyclerView.ViewHolder {
            TextView tv_all_data, tv_all_hin, tv_order;

            ViewHolder(View itemView) {
                super(itemView);
                tv_order = (TextView) itemView.findViewById(R.id.tv_order);
                tv_all_data = (TextView) itemView.findViewById(R.id.tv_all_data);
                tv_all_hin = (TextView) itemView.findViewById(R.id.tv_all_hin);
            }
        }
    }

    public interface OnCodeRecyclerviewItemClickListener {
        void onItemClickListener(View v, int position);
    }

然后在Activity中调用:

    private OnCodeRecyclerviewItemClickListener onCodeRecyclerviewItemClickListener = new OnCodeRecyclerviewItemClickListener() {
        @Override
        public void onItemClickListener(View v, int position) {
            AllTypeResponse.DataBean.ListBean item = allTypeAdapter.getItem(position);
            Toast.makeText(AllTypeActivity.this,item.getTitle(),Toast.LENGTH_LONG).show();
        }
    };
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值