欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android開發(fā)使用RecyclerView添加點(diǎn)擊事件實(shí)例詳解

 更新時間:2022年08月24日 16:05:49   作者:leekey  
這篇文章主要為大家介紹了Android開發(fā)使用RecyclerView添加點(diǎn)擊事件實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

引言

RecyclerView是在Android5.0版本作為support-v7的一個組件出現(xiàn),高效替代了最初的ListView等列表組件。

使用上實(shí)現(xiàn)了視圖代碼解耦,功能上具備強(qiáng)大的item復(fù)用機(jī)制,并且提供默認(rèn)多種LayoutMananger用來處理多種布局,本篇介紹給RecyclerView基本使用添加點(diǎn)擊事件。

添加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) {
        // 綁定數(shù)據(jù)
    }
    override fun getItemCount(): Int {
        return myList.size
    }
}

2. 創(chuàng)建列表的每個項(xiàng)的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中使用

    // 設(shè)置LayoutManager,這里選用LinearLayoutManager線性布局作為示例
    recyclerView.layoutManager = LinearLayoutManager(MyApplication.context)
    // 創(chuàng)建適配器
    val newsAdapter = NewsAdapter(newsList)
    // 設(shè)置適配器
    recyclerView.adapter = newsAdapter

二、RecyclerView點(diǎn)擊事件詳細(xì)步驟

1. 在RecyclerView對應(yīng)的Adapter類里面新建接口

    //創(chuàng)建OnItemClickListener接口
    interface OnItemClickListener {
        fun onItemClick(position: Int)
    }

2. 在Adapter類里創(chuàng)建setOnItemClickListener方法

    //聲明一個mItemClickListener接口
    private var mOnItemClickListener: OnItemClickListener? = null
    //添加setOnItemClickListener方法
    fun setOnItemClickListener(listener: OnItemClickListener?) {
        mOnItemClickListener = listener
    }

3. 在Adapter類的onBindViewHolder里給每個item設(shè)置回調(diào)

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        ......
        //給每個Item的點(diǎn)擊事件設(shè)置回調(diào)
        holder.itemView.setOnClickListener {
            mOnItemClickListener?.onItemClick(position)
        }
    }

4. 在RecyclerView對應(yīng)的Activity里添加點(diǎn)擊事件

    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()
        }
    })

總結(jié)

  • RecyclerView對應(yīng)的Adapter類里面新建接口
  • Adapter類里創(chuàng)建setOnItemClickListener方法
  • Adapter類的onBindViewHolder里給每個item設(shè)置回調(diào)
  • RecyclerView對應(yīng)的Activity里添加點(diǎn)擊事件

以上就是Android開發(fā)使用RecyclerView添加點(diǎn)擊事件實(shí)例詳解的詳細(xì)內(nèi)容,更多關(guān)于Android RecyclerView添加點(diǎn)擊事件的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • monkeyrunner 腳本錄制實(shí)例詳解

    monkeyrunner 腳本錄制實(shí)例詳解

    這篇文章主要介紹了monkeyrunner 腳本錄制實(shí)例詳解的相關(guān)資料,具有一定的參考價(jià)值,需要的朋友可以參考下
    2016-11-11
  • Android實(shí)現(xiàn)點(diǎn)擊兩次返回鍵退出

    Android實(shí)現(xiàn)點(diǎn)擊兩次返回鍵退出

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)點(diǎn)擊兩次返回鍵退出的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Android硬件解碼組件MediaCodec使用教程

    Android硬件解碼組件MediaCodec使用教程

    在Android開發(fā)中提供了實(shí)現(xiàn)音視頻編解碼工具M(jìn)ediaCodec,針對對應(yīng)音視頻解碼類型通過該類創(chuàng)建對應(yīng)解碼器就能實(shí)現(xiàn)對數(shù)據(jù)進(jìn)行解碼操作。本文通過示例詳細(xì)講解了MediaCodec的使用,需要的可以參考一下
    2022-11-11
  • Android實(shí)現(xiàn)沉浸式導(dǎo)航欄實(shí)例代碼

    Android實(shí)現(xiàn)沉浸式導(dǎo)航欄實(shí)例代碼

    通過本文給大家分享android實(shí)現(xiàn)沉浸式導(dǎo)航欄實(shí)例代碼,代碼非常實(shí)用,需要的朋友可以參考下
    2016-05-05
  • Android library native調(diào)試代碼遇到的問題解決

    Android library native調(diào)試代碼遇到的問題解決

    這篇文章主要介紹了Android library native 代碼不能調(diào)試解決方法匯總,android native開發(fā)會碰到native代碼無法調(diào)試問題,而app主工程中的native代碼是可以調(diào)試的
    2023-04-04
  • 詳解Android中Service服務(wù)的基礎(chǔ)知識及編寫方法

    詳解Android中Service服務(wù)的基礎(chǔ)知識及編寫方法

    這篇文章主要介紹了詳解Android中Service服務(wù)的基礎(chǔ)知識及編寫方法,包括Service的啟動流程及生命周期等基本內(nèi)容,需要的朋友可以參考下
    2016-04-04
  • Android實(shí)現(xiàn)拍照、選擇相冊圖片并裁剪功能

    Android實(shí)現(xiàn)拍照、選擇相冊圖片并裁剪功能

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)拍照、選擇相冊圖片并裁剪功能的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Android實(shí)現(xiàn)下載m3u8視頻文件問題解決

    Android實(shí)現(xiàn)下載m3u8視頻文件問題解決

    這篇文章主要介紹了Android實(shí)現(xiàn)下載m3u8視頻文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-01-01
  • android內(nèi)存優(yōu)化之圖片優(yōu)化

    android內(nèi)存優(yōu)化之圖片優(yōu)化

    對圖片本身進(jìn)行操作。盡量不要使用setImageBitmap、setImageResource、BitmapFactory.decodeResource來設(shè)置一張大圖,因?yàn)檫@些方法在完成decode后,最終都是通過java層的createBitmap來完成的,需要消耗更多內(nèi)存
    2012-12-12
  • 基于Android本地代碼生成器詳解

    基于Android本地代碼生成器詳解

    本篇文章是對Android本地代碼生成器的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05

最新評論