RecyclerView——添加点击事件
来源:互联网 发布:php xpath 抓取内容 编辑:程序博客网 时间:2024/05/21 07:55
Android5.0谷歌退出了RecyclerView用与替代不好用的ListView,但是RecyclerView没有像listView一样的点击事件。所以需要自己添加。
下面直接粘下代码:
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()方法中,设置监听事件。
0 0
- RecyclerView——添加点击事件
- RecyclerView添加点击事件
- RecyclerView添加点击事件
- Recyclerview添加点击事件
- RecyclerView——点击事件
- RecyclerView中添加点击事件
- 初识RecyclerView(二)——添加item的点击事件
- RecyclerView 给Item添加点击事件
- RecyclerView + CardView 添加Item点击事件
- 为RecyclerView添加item的点击事件
- 为RecyclerView添加item的点击事件
- RecyclerView添加点击事件与效果
- 为RecyclerView添加item的点击事件
- 为RecyclerView添加item的点击事件
- 为RecyclerView添加item的点击事件
- RecyclerView中点击事件的添加
- 为RecyclerView添加item的点击事件
- 为RecyclerView添加item的点击事件
- 欢迎使用CSDN-markdown编辑器
- Matlab Coding Tricks
- [Scrapy]爬取糗事百科段子
- [unity]实现切水果游戏
- HTML语言标签之框架标签
- RecyclerView——添加点击事件
- 二叉树的建立和遍历
- C#中二维数组int[,]与交叉数组int[][]的区别
- YOLO v2之总结篇(linux+windows)
- 一个unity3d代码换行符警告提醒的解决方法
- Java封装JDBC数据库增、删、改、查操作成JAR文件,以供Web工程调用,适用于多种数据库
- Ubuntu 14.04忘记root密码的解决方法
- retrofit加载失败java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1...
- Mybatis面试问题集锦