RecyclerView 给Item添加点击事件

来源:互联网 发布:淘宝网男加宽牛仔裤 编辑:程序博客网 时间:2024/05/22 03:32


转载:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1118/2004.html


添加点击事件

上一节中我们讲了如何使用RecyclerView的Adpater,其实我们会发现,Adapter是添加点击事件一个很好的地方,里面是构造布局等View的主要场所,也是数据和布局进行绑定的地方。首先我们在Adapter中创建一个实现点击接口,其中view是点击的Item,data是我们的数据,因为我们想知道我点击的区域部分的数据是什么,以便我下一步进行操作:

public static interface OnRecyclerViewItemClickListener {    void onItemClick(View view , DataModel data);}



定义完接口,添加接口和设置Adapter接口的方法:

private OnRecyclerViewItemClickListener mOnItemClickListener = null;    public void setOnItemClickListener(OnRecyclerViewItemClickListener listener) {    this.mOnItemClickListener = listener;}


那么这个接口用在什么地方呢?如下代码所示,我们为Adapter实现OnClickListener方法:

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> implements View.OnClickListener{    @Override    public ViewHolder onCreateViewHolder(ViewGroup viewGroup, final int i) {        View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item, viewGroup, false);        ViewHolder vh = new ViewHolder(view);        //将创建的View注册点击事件        view.setOnClickListener(this);        return vh;    }    @Override    public void onBindViewHolder(ViewHolder viewHolder, final int i) {        viewHolder.mTextView.setText(datas.get(i).title);        //将数据保存在itemView的Tag中,以便点击时进行获取        viewHolder.itemView.setTag(datas.get(i));    }    ...    @Override    public void onClick(View v) {        if (mOnItemClickListener != null) {            //注意这里使用getTag方法获取数据            mOnItemClickListener.onItemClick(v,(DataModel)v.getTag());        }    }    ...}


做完这些事情,我们就可以在Activity或其他地方为RecyclerView添加项目点击事件了,如在MainActivity中:

mAdapter = new MyAdapter(getDummyDatas());mRecyclerView.setAdapter(mAdapter);mAdapter.setOnItemClickListener(new MyAdapter.OnRecyclerViewItemClickListener() {    @Override    public void onItemClick(View view, DataModel data) {        //DO your fucking bussiness here!    }});


完成了以上代码就可以为RecyclerView添加项目点击事件了,下面我们来看看RecyclerView如何添加和删除数据并在界面上显示。


3 0
原创粉丝点击