recyclerview使用GridLayoutManager后实现点击事件

今天get一个小小的技能,

对于其他人来说应该是常用的技能,但是我可是今天才会的啊。还是借鉴别人 后看会的。

首先创建一个接口

    private OnItemOnclick onItemOnclick;
       接口必须是public
    public interface OnItemOnclick {
        void setOnclickItem(View view, int position);
    }

    public void OnItemOnclick(OnItemOnclick onItemOnclick) {
        this.onItemOnclick = onItemOnclick;
    }

在onBindViewHolder方法中队item进行点击事件

 final ImageBean image = data.get(position);
            ((ItemAdapter) holder).imageView.setImageResource(image.img);
            ((ItemAdapter) holder).textView.setText(image.name);
            holder.itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    switch (image.name){
                        case "dada":
                            Toast.makeText(context,"dadada",Toast.LENGTH_SHORT).show();
                            break;
                        case "dada1":
                            Toast.makeText(context,"dadada1",Toast.LENGTH_SHORT).show();
                            break;
                    }
                }
            });

另一种方法给item创建点击事件的 在activity中进行点击事件的响应 如下

  holder.itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
//                   if (mOnItemClick!=null){
//                       mOnItemClick.setItemOnclick(v,position);
//                   }

在activity中就是 利用的是postion位置的不同 对item进行点击事件的

 adapter.setOnItemClick(new RecyclerAdapter.OnItemClick() {
            @Override
            public void setItemOnclick(View view, int postion) {
                switch (postion){
                    case 0:
                        Toast.makeText(SecondActivty.this, "对不起,电话不能为空", Toast.LENGTH_SHORT).show();
                        break;
                }
            }
        });


猜你喜欢

转载自blog.csdn.net/xukangone/article/details/80386395
今日推荐