91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android如何定義列表點擊事件

發布時間:2021-12-22 12:43:27 來源:億速云 閱讀:237 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關Android如何定義列表點擊事件,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

列表點擊事件的定義

在Adapter內創建接口,并設置set方法

// 聲明接口
interface OnItemClickListener {
    fun onItemClick(itemView: View?, pos: Int, itemId: Long)
}

//設置set方法
fun setOnItemClickListener(onItemClickListener: OnItemClickListener) {
    mClickListener = onItemClickListener
}

使用Adapter時實現接口

adapter.setOnItemClickListener(object :BaseVastBindingAdapter.OnItemClickListener{
    override fun onItemClick(itemView: View?, pos: Int, itemId: Long) {
        if (pos == 0) {
            //Something do when pos is equal to 0
        }else if (pos == 1) {
            //Something do when pos is equal to 1
        }else{
            
        }
    }
})

但是這也會帶來一個問題,就是如果列表項點擊事件重復還好說,假如有類似下面的界面

Android如何定義列表點擊事件

如果競賽咨詢是打開Activity,辦公信息是傳輸數據,失物招領顯示Toast消息,那么全部依靠 pos 判斷會讓 onItemClick 里面的邏輯變得特別臃腫,同時我們修改item事件時也受 pos 的制約(因為 pos 都是提前定義好的),因此我覺得可以嘗試把點擊事件聲明在 model 里面,例如:

class VastSwipeMenuItem @JvmOverloads constructor(
    private val context: Context,
    val title: String = context.resources.getString(R.string.default_slide_item_title),
    val icon: Drawable? = ContextCompat.getDrawable(context, R.drawable.ic_null),
    val background: Drawable? = ContextCompat.getDrawable(context, R.drawable.default_menu_item_background),
    val titleColor: Int = ContextCompat.getColor(context, R.color.default_menu_item_title_color),
    val clickEvent: ((VastSwipeMenuItem, Int) -> Unit)? = null
) {
	// 具體實現
}

這樣如果我們想定義此 item 對應的點擊事件就可以這樣:

//聲明model
val deleteItem = VastSwipeMenuItem(this@SlideActivity)
//定義點擊事件
deleteItem.setClickEvent { item: VastSwipeMenuItem, position: Int ->
    run {
        Toast.makeText(this@SlideActivity, "${item.title} $position", Toast.LENGTH_SHORT)
            .show()
    }
}

而在Adapter內我們只需如下定義點擊事件

ListItemView.setOnClickListener {
	//item為根據pos獲取到的
    item.clickEvent?.let { it1 -> it1(item,position) }
}

關于“Android如何定義列表點擊事件”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

庄浪县| 福鼎市| 衢州市| 南木林县| 河源市| 新蔡县| 二连浩特市| 东乌珠穆沁旗| 呼和浩特市| 礼泉县| 怀安县| 巴南区| 德钦县| 滦平县| 宁都县| 三门峡市| 威信县| 昂仁县| 右玉县| 满洲里市| 健康| 图木舒克市| 天祝| 安达市| 安平县| 宁强县| 蕲春县| 互助| 甘泉县| 建德市| 攀枝花市| 闽侯县| 昭通市| 宜城市| 榆中县| 枞阳县| 沾益县| 南京市| 确山县| 泸水县| 札达县|