当前位置 : 主页 > 手机开发 > android >

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

来源:互联网 收集:自由互联 发布时间:2023-02-01
目录 引言 一、RecyclerView基本使用 1. 添加适配器Adapter 2. 创建列表的每个项的item_layout.xml文件 3. 在activity中使用 二、RecyclerView点击事件详细步骤 1. 在RecyclerView对应的Adapter类里面新建接
目录
  • 引言
  • 一、RecyclerView基本使用
    • 1. 添加适配器Adapter
    • 2. 创建列表的每个项的item_layout.xml文件
    • 3. 在activity中使用
  • 二、RecyclerView点击事件详细步骤
    • 1. 在RecyclerView对应的Adapter类里面新建接口
    • 2. 在Adapter类里创建setOnItemClickListener方法
    • 3. 在Adapter类的onBindViewHolder里给每个item设置回调
    • 4. 在RecyclerView对应的Activity里添加点击事件
  • 总结

    引言

    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开发实战闹钟项目
    下一篇:没有了
    网友评论