RecycleView设置点击的两种方式:adapter中的onBindViewHolder(VH,int)方法中进行;实现RecyclerView的addonItemTouchListerner()
2017-03-01 17:14
811 查看
第一种方式:就是当布局需点击事件的控件较少时
Activity中去设置监听:
第二种方式:有点击需求的控件数量多少不限,当数量较多时更适合
https://segmentfault.com/a/1190000005176416 https://segmentfault.com/a/1190000004854818
class HomeAdapter extends RecyclerView.Adapter<HomeAdapter.MyViewHolder> { //... public interface OnItemClickLitener { void onItemClick(View view, int position); void onItemLongClick(View view , int position); } private OnItemClickLitener mOnItemClickLitener; public void setOnItemClickLitener(OnItemClickLitener mOnItemClickLitener) { this.mOnItemClickLitener = mOnItemClickLitener; } @Override public void onBindViewHolder(final MyViewHolder holder, final int position) { holder.tv.setText(mDatas.get(position)); // 如果设置了回调,则设置点击事件 if (mOnItemClickLitener != null) { holder.itemView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { int pos = holder.getLayoutPosition(); mOnItemClickLitener.onItemClick(holder.itemView, pos); } }); holder.itemView.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View v) { int pos = holder.getLayoutPosition(); mOnItemClickLitener.onItemLongClick(holder.itemView, pos); return false; } }); } } //... }
Activity中去设置监听:
mAdapter.setOnItemClickLitener(new OnItemClickLitener() { @Override public void onItemClick(View view, int position) { Toast.makeText(HomeActivity.this, position + " click", Toast.LENGTH_SHORT).show(); } @Override public void onItemLongClick(View view, int position) { Toast.makeText(HomeActivity.this, position + " long click", Toast.LENGTH_SHORT).show(); mAdapter.removeData(position); } });
第二种方式:有点击需求的控件数量多少不限,当数量较多时更适合
https://segmentfault.com/a/1190000005176416 https://segmentfault.com/a/1190000004854818
相关文章推荐
- Error:(13, 8) 错误: xxx不是抽象的, 并且未覆盖xxx中的抽象方法onBindViewHolder(BaseSimpleRecyclerAdapter.ViewHolder,int)
- RecyclerView方法onCreateViewHolder()和onBindViewHolder()没有调用
- RecyclerView不调用onCreateViewHolder和onBindViewHolder的解决方法
- RecyclerView实现Item点击事件方法三/四
- Android RecyclerView单击、长按事件标准实现:基于OnItemTouchListener + GestureDetector
- 关于在recycleview中点击item获取对应的viewholder的方法
- ListView集合中设置标记 setTag();方法带一个参数和两个参数的区别,以及设置标记时ViewHolder中的每一个属性控件都需要设置一次,否则在Item中每一个控件的点击事件中取出设置的标
- 用RecyclerView实现新闻列表页,包括头部的图片轮播,两种Item显示方式,下拉刷新和上拉加载以及限制列表的加载条目数
- RecyclerView实现Item点击事件方法二
- RecyclerView实现Item点击事件方法一
- 有关RecyclerView.Adapter 的 notifyItemChanged(int position, @Nullable Object payload) 方法
- Android RecyclerView单击、长按事件标准实现:基于OnItemTouchListener + GestureDetector
- RecyclerView 的工具类,更方便的实现 Adapter,item 点击事件,更快的实现加载提示,分页加载。
- Android RecyclerView单击、长按事件标准实现:基于OnItemTouchListener + GestureDetector
- RecyclerView的item点击事件(点击和长按)的两种实现
- RecyclerView点击事件OnItemClick的两种实现方式
- 使用ItemTouchHelper轻松实现RecyclerView拖拽排序和滑动删除
- Android实现RecyclerView侧滑删除和长按拖拽-ItemTouchHelper
- recycleview设置itemclick onitemLongclick的方法
- RecyclerView之ViewHolder封装实现点击、长按、headerView和多选功能