RecyclerView定义点击事件

// RecyclerView的适配器Eradapter 

public class Eradapter extends RecyclerView.Adapter<Eradapter.ViewHolder> {

    private static final int TYPE_ONE = 0;
    private static final int TYPE_TWO = 1;
    private Context context;
    private ArrayList<Fenleifx> arrayList;

    public Eradapter(Context context, ArrayList<Fenleifx> arrayList) {
        this.context = context;
        this.arrayList = arrayList;
    }

    /**
     * @return
     */
    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = null;
        view = LayoutInflater.from(context).inflate(R.layout.erfenlei, parent, false);
        ViewHolder viewHolder = new ViewHolder(view);
        return viewHolder;
    }


    /**
     * 删除一个条目
     * @param position 删除的条目位置
     */
    public void removeItem(int position){

        arrayList.remove(position);
        //notifyDataSetChanged();
        notifyItemRemoved(position);

    }


    //声明自己的一个事件回调接口
    public interface OnItemClickListener{
        //条目点击事件
        void setOnItemClick(View view, int position);
        //条目长按事件
        void setOnItemLongClick(View view, int position);
    }

    private OnItemClickListener onItemClickListener;
    public void setOnItemClickListener(OnItemClickListener onItemClickListener){
        this.onItemClickListener = onItemClickListener;
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, final int position) {
        //获取到设置View属性的对象
        ViewGroup.LayoutParams params = holder.itemView.getLayoutParams();
        //重新定义高度
//        params.height = heightList.get(position);
        //保存之前所定义的高度
        holder.itemView.setLayoutParams(params);
        if(position %2 == 0) {
            //设置文本
            holder.tv.setText(arrayList.get(position).getName());
        }else{
            holder.tv.setText(arrayList.get(position).getName());
        }
        if(null != onItemClickListener)
        {
            //回调点击事件
            holder.itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //回调
                    onItemClickListener.setOnItemClick(v,position);
                }
            });
            holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View v) {
                    onItemClickListener.setOnItemLongClick(v,position);
                    return true;//消费掉
                }
            });
        }
    }

    @Override
    public int getItemCount() {//条目数
        return arrayList != null?arrayList.size():0;
    }

    //获得View的类型
    @Override
    public int getItemViewType(int position) {

        //奇数这个不局,偶数加载另外一个布局
        if(position %2 == 0){
            return TYPE_ONE;
        }else{
            return TYPE_TWO;
        }
    }
    //生命我们自己的ViewHolder
    class ViewHolder extends RecyclerView.ViewHolder{
        TextView tv;
        //View itemViews;
        public ViewHolder(View itemView) {
            super(itemView);

            //itemViews = itemView;
            tv = itemView.findViewById(R.id.ertv);
        }

    }
}


//请求成功的bean

    @Override
    public void seecss(clickjumpbean bean) {
//        Log.e("ppp", "seecss: "+bean.getData().size());
        twoclickrec = (RecyclerView) findViewById(R.id.twoclickrec);
        final List<clickjumpbean.DataBean> data = bean.getData();
        //网格布局样式
        GridLayoutManager gridLayoutManager1 = new GridLayoutManager(TwocanActivity.this, 2, GridLayoutManager.VERTICAL, false);
        //线性布局
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
        twoclickrec.setLayoutManager(linearLayoutManager);
        TwoJumprcle twoJumprcle = new TwoJumprcle(TwocanActivity.this,data );
        twoclickrec.setAdapter(twoJumprcle);
        twoJumprcle.setOnItemClickListener(new TwoJumprcle.OnItemClickListener() {
            @Override
            public void setOnItemClick(View view, int position) {
                Intent intent = new Intent(TwocanActivity.this,TwoxiangqingActivity.class);
                int pid = data.get(position).getPid();
                intent.putExtra("xqpid",pid+"");
                startActivity(intent);
            }
            @Override
            public void setOnItemLongClick(View view, int position) {
            }
        });
    }






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值