这篇文章主要为大家介绍了Android开发使用RecyclerView添加点击事件实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
引言
RecyclerView是在Android5.0版本作为support-v7的一个组件出现,高效替代了最初的ListView等列表组件。
使用上实现了视图代码解耦,功能上具备强大的item复用机制,并且提供默认多种LayoutMananger用来处理多种布局,本篇介绍给RecyclerView基本使用和添加点击事件。
添加RecyclerView
依赖
implementation 'androidx.recyclerview:recyclerview:1.1.0'
一、RecyclerView基本使用
1. 添加适配器Adapter
class NewsAdapter(private val newsList: List<NewsInfo>, ): RecyclerView.Adapter<NewsAdapter.ViewHolder>() {
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
// ViewHolder
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_layout, parent, false)
return ViewHolder(view)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
// 绑定数据
}
override fun getItemCount(): Int {
return myList.size
}
}
2. 创建列表的每个项的item_layout.xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_marginHorizontal="10dp"
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:text="title"
android:textSize="16sp"
android:textColor="#000000" />
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="200dp" />
<View
android:layout_width="match_parent"
android:layout_height="0.1dp"
android:layout_marginTop="10dp"
android:background="#d3d3d3" />
</LinearLayout>
3. 在activity中使用
// 设置LayoutManager,这里选用LinearLayoutManager线性布局作为示例
recyclerView.layoutManager = LinearLayoutManager(MyApplication.context)
// 创建适配器
val newsAdapter = NewsAdapter(newsList)
// 设置适配器
recyclerView.adapter = newsAdapter
二、RecyclerView点击事件详细步骤
1. 在RecyclerView对应的Adapter类里面新建接口
//创建OnItemClickListener接口
interface OnItemClickListener {
fun onItemClick(position: Int)
}
2. 在Adapter类里创建setOnItemClickListener方法
//声明一个mItemClickListener接口
private var mOnItemClickListener: OnItemClickListener? = null
//添加setOnItemClickListener方法
fun setOnItemClickListener(listener: OnItemClickListener?) {
mOnItemClickListener = listener
}
3. 在Adapter类的onBindViewHolder里给每个item设置回调
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
......
//给每个Item的点击事件设置回调
holder.itemView.setOnClickListener {
mOnItemClickListener?.onItemClick(position)
}
}
4. 在RecyclerView对应的Activity里添加点击事件
val adapter = YourAdapter(YourData) //适配器
adapter.setOnItemClickListener(object : YourAdapter.OnItemClickListener {
override fun onItemClick(position: Int) {
Toast.makeText(this@YourActivity, "You clicked No.${position} item.", Toast.LENGTH_SHORT).show()
}
})
总结
- 在
RecyclerView
对应的Adapter
类里面新建接口 - 在
Adapter
类里创建setOnItemClickListener
方法 - 在
Adapter
类的onBindViewHolder
里给每个item
设置回调 - 在
RecyclerView
对应的Activity
里添加点击事件
以上就是Android开发使用RecyclerView添加点击事件实例详解的详细内容,更多关于Android RecyclerView添加点击事件的资料请关注编程学习网其它相关文章!
沃梦达教程
本文标题为:Android开发使用RecyclerView添加点击事件实例详解
基础教程推荐
猜你喜欢
- IOS获取系统相册中照片的示例代码 2023-01-03
- Android实现短信验证码输入框 2023-04-29
- iOS中如何判断当前网络环境是2G/3G/4G/5G/WiFi 2023-06-18
- iOS开发使用XML解析网络数据 2022-11-12
- iOS开发 全机型适配解决方法 2023-01-14
- iOS Crash常规跟踪方法及Bugly集成运用详细介绍 2023-01-18
- Android Compose自定义TextField实现自定义的输入框 2023-05-13
- Flutter进阶之实现动画效果(三) 2022-10-28
- Android开发Compose集成高德地图实例 2023-06-15
- MVVMLight项目Model View结构及全局视图模型注入器 2023-05-07