Android开发使用RecyclerView添加点击事件实例详解

 更新时间:2022年08月24日 16:05:49   作者:leekey  
这篇文章主要为大家介绍了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编程实现获取新浪天气预报数据的方法

    Android编程实现获取新浪天气预报数据的方法

    这篇文章主要介绍了Android编程实现获取新浪天气预报数据的方法,涉及Android基于新浪接口的调用及数据处理技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • Android 绘制多级树形选择列表实例代码

    Android 绘制多级树形选择列表实例代码

    这篇文章主要介绍了Android 绘制多级树形选择列表的相关知识,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-02-02
  • Android开发实现ScrollView中嵌套两个ListView的方法

    Android开发实现ScrollView中嵌套两个ListView的方法

    这篇文章主要介绍了Android开发实现ScrollView中嵌套两个ListView的方法,结合实例形式分析了Android ScrollView中嵌套两个ListView的操作技巧与相关注意事项,需要的朋友可以参考下
    2017-11-11
  • Android编程之简单计时器实现方法

    Android编程之简单计时器实现方法

    这篇文章主要介绍了Android编程之简单计时器实现方法,涉及Android开发中ContextMenu及Chronometer的相关使用技巧,需要的朋友可以参考下
    2016-01-01
  • Flutter实现渐变弧形进度条的示例详解

    Flutter实现渐变弧形进度条的示例详解

    在Flutter开发中,构建一个具有视觉吸引力的、反映进度的圆形弧形进度条是一个常见需求,本文将详细介绍如何使用Flutter和Dart语言实现这一功能,需要的可以参考下
    2023-12-12
  • Android调用系统默认浏览器访问的方法

    Android调用系统默认浏览器访问的方法

    这篇文章主要介绍了Android调用系统默认浏览器访问的方法的相关资料,需要的朋友可以参考下
    2016-03-03
  • Android 暂停和恢复Activity

    Android 暂停和恢复Activity

    在正常的应用程序使用,前台activity有时会被其他可视化组件遮挡,从而 造成activity的暂停。例如,当一个半透明的activity打开时(如在一个风格对话框),以前的activity就暂停了。只要 activity仍然是部分可见,但目前没有获得焦点,它就依然处于暂停状态
    2016-03-03
  • Android解决ScrollView下嵌套ListView和GridView中内容显示不全的问题

    Android解决ScrollView下嵌套ListView和GridView中内容显示不全的问题

    今天小编就为大家分享一篇关于Android解决ScrollView下嵌套ListView和GridView中内容显示不全的问题,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • Android编程实现3D立体旋转效果的实例代码

    Android编程实现3D立体旋转效果的实例代码

    这篇文章主要介绍了Android编程实现3D立体旋转效果的实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • Android中打电话的数据流程分析

    Android中打电话的数据流程分析

    所有流程的起点是从拨号后按下拨号键开始,接下来将对打电话的数据流程进行源码分析,感兴趣的朋友可以了解下
    2013-01-01

最新评论