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, ): RecyclerView.Adapter() {
    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文件



    
    
    

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添加点击事件实例详解)