泰拉瑞亞光棱劍怎么制作 泰拉瑞亞光束劍怎么合成
2023-08-24
更新時(shí)間:2023-08-24 18:03:06作者:未知
本文是介紹 RecyclerView 入門 系列文章 的第三篇。如果您已經(jīng)對創(chuàng)建 RecyclerView 有了一定的認(rèn)識,請繼續(xù)閱讀本文。如果尚未熟悉,建議您首先閱讀本系列中的 第一篇文章。
當(dāng)使用 RecyclerView 顯示列表數(shù)據(jù)的時(shí)候,您可能需要響應(yīng)列表元素的點(diǎn)擊事件。該響應(yīng)處理包括: 打開包含更多數(shù)據(jù)的頁面、顯示 toast、刪除某個(gè)元素等等。相關(guān)的響應(yīng)事件雖然數(shù)不勝數(shù),但是它們均需要通過 onClick() 來實(shí)現(xiàn)。
在創(chuàng)建監(jiān)聽器之前,在 Activity 類中添加一個(gè)函數(shù)用于處理點(diǎn)擊之后的響應(yīng)操作。
<!--Copyright2019GoogleLLC. SPDX-License-Identifier:Apache-2.0--> privatefunadapterOnClick(flower:Flower){ valintent=Intent(this,FlowerDetailActivity()::class.java) intent.putExtra(FLOWER_ID,flower.id) this.startActivity(intent) }
接下來,修改 Adapter 的構(gòu)造函數(shù)來傳入 onClick() 函數(shù)。
<!--Copyright2019GoogleLLC. SPDX-License-Identifier:Apache-2.0--> classFlowersAdapter(privatevalonClick:(Flower)->Unit): ListAdapter<Flower,RecyclerView.ViewHolder>(FlowerDiffCallback())
在 Activity 類中,在初始化 Adapter 的時(shí)候傳入剛剛創(chuàng)建的點(diǎn)擊事件函數(shù)。
<!--Copyright2019GoogleLLC. SPDX-License-Identifier:Apache-2.0--> valflowersAdapter=FlowersAdapter{flower-> adapterOnClick(flower) }
現(xiàn)在響應(yīng)處理已經(jīng)定義好了,可以將它關(guān)聯(lián)到 Adapter 的 ViewHolder 了。
修改 ViewHolder,將 onClick() 作為參數(shù)傳入。
<!--Copyright2019GoogleLLC. SPDX-License-Identifier:Apache-2.0--> classFlowerViewHolder(itemView:View,valonClick:(Flower)->Unit): RecyclerView.ViewHolder(itemView)
在初始化的代碼中,調(diào)用 itemView 的 setOnClickListener{}。
<!--Copyright2019GoogleLLC. SPDX-License-Identifier:Apache-2.0--> init{ itemView.setOnClickListener{ currentFlower?.let{ onClick(it) } } }
搞定!現(xiàn)在您的 RecyclerView 可以響應(yīng)點(diǎn)擊事件了。
編程快樂!
請查閱包含 onClick() 的 完整示例。
感謝您閱讀 RecyclerView 系列 文章的第三篇。請繼續(xù)關(guān)注未來更多關(guān)于 RecyclerView 的內(nèi)容。