RecyclerView——添加点击事件
2016-12-12 21:49
323 查看
Android5.0谷歌退出了RecyclerView用与替代不好用的ListView,但是RecyclerView没有像listView一样的点击事件。所以需要自己添加。
下面直接粘下代码:
MainActivity.java
MyAdapter.java
可以看到,代码中,我们在ViewHolder中获取了子项布局的view,然后在onCreateViewHolder()方法中,设置监听事件。
下面直接粘下代码:
MainActivity.java
public class MainActivity extends AppCompatActivity { private List<Bean> list = new ArrayList<>(); private RecyclerView ryList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initDatas(); ryList = (RecyclerView) findViewById(R.id.ry_list); LinearLayoutManager manager = new LinearLayoutManager(this); ryList.setLayoutManager(manager); MyAdapter adapter = new MyAdapter(list); ryList.setAdapter(adapter); } /** * 初始化数据 */ public void initDatas() { for (int i = 0; i < 10; i++) { Bean bean = new Bean(); bean.setImg(R.mipmap.ic_launcher); bean.setName("名字:" + i); list.add(bean); } } }
MyAdapter.java
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { private List<Bean> list; public MyAdapter(List<Bean> list) { this.list = list; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list, parent, false); final ViewHolder holder = new ViewHolder(view); holder.beanView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { int position = holder.getAdapterPosition(); Toast.makeText(view.getContext(), "点击了第" + position + "个列表", Toast.LENGTH_SHORT) .show(); } }); holder.ivImg.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { int position = holder.getAdapterPosition(); Toast.makeText(view.getContext(), "点击了第" + position + "张图片", Toast.LENGTH_SHORT) .show(); } }); return holder; } @Override public void onBindViewHolder(ViewHolder holder, int position) { Bean bean = list.get(position); holder.ivImg.setImageResource(bean.getImg()); holder.tvName.setText(bean.getName()); } @Override public int getItemCount() { return this.list.size(); } static class ViewHolder extends RecyclerView.ViewHolder { View beanView; ImageView ivImg; TextView tvName; public ViewHolder(View view) { super(view); beanView = view; ivImg = (ImageView) view.findViewById(R.id.iv_img); tvName = (TextView) view.findViewById(R.id.tv_name); } } }
可以看到,代码中,我们在ViewHolder中获取了子项布局的view,然后在onCreateViewHolder()方法中,设置监听事件。
相关文章推荐
- Recyclerview添加点击事件和长按事件
- Android中Recyclerview使用3----添加条目得到点击事件和长按事件
- 为RecyclerView添加item的点击事件
- RecyclerView中添加点击事件
- 给RecyclerView的item添加点击监听事件
- RecyclerView点击事件与长按事件,并添加点击效果
- RecyclerView使用详解一代替ListView(点击事件,添加头布局,上拉刷新下拉加载)
- 精通RecyclerView:打造ListView、GridView、瀑布流;学会添加分割线、 添加删除动画 、Item点击事件
- [Android | Material Design] RecyclerView Item点击事件 添加水波纹效果 两种办法
- 为RecyclerView添加item的点击事件
- RecyclerView的点击事件添加-------接口回调的形式添加
- RecyclerView 添加头部和尾部,并实现Item的点击事件
- Android中Recyclerview使用6----添加条目得到点击事件和长按事件(另一种写法,较简单)
- 为RecyclerView添加item的点击事件
- Android RecyclerView使用(二) -给Item添加点击事件
- Android 高级UI设计笔记20:RecyclerView 的详解之RecyclerView添加Item点击事件
- RecyclerView 添加点击事件的几种方法
- RecyclerView添加点击事件与效果
- Android中RecyclerView添加item的点击事件
- RecyclerView的使用以及下拉刷新自动加载(添加点击事件、头部)