多条目加监听事件

来源:互联网 发布:视频快进软件 编辑:程序博客网 时间:2024/05/01 23:40
/泛型要写RecyclerView的ViewHolderpublic class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {    private Context context;    private ArrayList<String> list;    //定义两种类型    private final int TYPE_0=0;    private final int TYPE_1=1;    //在create里判断item的类型    @Override    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        //判断类型        if (viewType == TYPE_0){            //初始化布局            View view = LayoutInflater.from(context).inflate(R.layout.rev_content_layout, null);            final MyViewHolder holder = new MyViewHolder(view);            //设置点击事件            view.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    int position = holder.getLayoutPosition();                    ItemCleck.setItemCleck(v,position);                }            });            return holder;            //判断类型        }else if(viewType == TYPE_1){            //初始化布局            View view1= LayoutInflater.from(context).inflate(R.layout.list_layout,null);            final MyViewHolder1 holder1 = new MyViewHolder1(view1);            //设置点击事件            view1.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    int position = holder1.getLayoutPosition();                    ItemCleck.setItemCleck(v,position);                }            });            return holder1;        }        return null;    }    //赋值    @Override    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {        //要判断属于哪个ViewHolder才会点到属性        if (holder instanceof MyViewHolder){            ((MyViewHolder) holder).tv.setText(list.get(position));        } else if (holder instanceof MyViewHolder1) {            ((MyViewHolder1) holder).tv1.setText(list.get(position));        }    }    //判断item是哪种类型的条件    @Override    public int getItemViewType(int position) {        if (position%3 ==0){            return TYPE_0;        }else{            return TYPE_1;        }    }    @Override    public int getItemCount() {        return list.size();    }    //构造器    public MyAdapter(Context context, ArrayList<String> list) {        this.context = context;        this.list = list;    }    //接口回掉:recyclerView的点击事件    private OnItemCleck ItemCleck;    public interface OnItemCleck{        void setItemCleck(View v,int position);    }    public void setOnItemCleckListener(OnItemCleck itemCleck) {        ItemCleck = itemCleck;    }    public class MyViewHolder extends RecyclerView.ViewHolder{        TextView tv;        public MyViewHolder(View itemView) {            super(itemView);            tv = (TextView) itemView.findViewById(R.id.content_text);        }    }    public class MyViewHolder1 extends RecyclerView.ViewHolder{        TextView tv1;        public MyViewHolder1(View itemView) {            super(itemView);            tv1 = (TextView) itemView.findViewById(R.id.text_1);        }    }}
原创粉丝点击