RecyclerView的使用(三)——点击事件

来源:互联网 发布:游戏编程软件有哪些 编辑:程序博客网 时间:2024/06/16 09:14

RecyclerView的使用(三)——点击事件

一、创建自定义接口

public interface MyItemClickListener {    public void onItemClick(View view, int postion);}

二、在Activity的initData中
就可以调用Adpater的setOnItemClickListener方法

this.mAdapter.setOnItemClickListener(this);

三、在Adpater类中

 public void setOnItemClickListener(MyItemClickListener listener){        this.mItemClickListener = listener;    }

四、在Adapter的onCreateViewHolder方法中,实例化viewholder时,传入建立的MyItemClickListener对象

private MyItemClickListener mItemClickListener;//onCreateViewHolder中// 实例化viewholderViewHolder viewHolder = new ViewHolder(v,mItemClickListener);

五、在Adpater的ViewHolder中,继承View.OnClickListener接口
1 viewHodler构造方法中,加上接口类 传入自定义的接口对象
2 重写View.OnClickListener的onClick点击监听方法
3 在onClick点击监听方法中,用创建的自定义接口的对象去重写自定义接口的方法 传入View和Position

public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {        TextView myTitle;        private MyItemClickListener mListener;        public ViewHolder(View itemView,MyItemClickListener listener) {            super(itemView);            // 获取组件            myTitle = itemView.findViewById(R.id.text_1);            this.mListener = listener;            itemView.setOnClickListener(this);        }        @Override        public void onClick(View v) {            if(mListener != null){                mListener.onItemClick(v,getPosition());            }        }    }

六、在Activity就可以实现具体的点击事件了
这里实现的是将position的值传给另一个界面

@Override    public void onItemClick(View view, int postion) {        String thisPosition=String.valueOf(postion);        Intent intent = new Intent(MainActivity.this,ShowActivity.class);        intent.putExtra("position", thisPosition);        Log.i("thisPosition",thisPosition);        startActivity(intent);    }

大致思路:
先自定义点击接口,然后在Activity中,将ItemClickListener对象传给Adapter类,Adapter类在实例化ViewHolder时,传入ItemClickListener对象,然后View.OnClickListener作为ViewHolder的接口,为每个item设置单独的OnClick监听并调用接口的方法,在Activity中写接口的具体方法实现。


参考博客:
http://blog.csdn.net/guxiao1201/article/details/40423361

原创粉丝点击