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

Android列表點擊事件定義的一些思考

 更新時間:2021年12月22日 10:56:45   作者:碼上夏雨  
大家好,本篇文章主要講的是Android列表點擊事件定義的一些思考,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽

前言

列表在我們的日常開發(fā)中使用的頻率是非常高的,像下圖的歌曲播放列表,或者課程展示,那么這些場景都需要我們用到點擊事件,點擊歌曲播放歌曲,點擊課程了解詳情,那么我們應該怎么定義點擊事件呢?

列表點擊事件的定義

在Adapter內創(chuàng)建接口,并設置set方法

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

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

使用Adapter時實現(xiàn)接口

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

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

如果競賽咨詢是打開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
) {
	// 具體實現(xiàn)
}

這樣如果我們想定義此 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列表點擊事件定義的一些思考的文章就介紹到這了,更多相關Android列表點擊事件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Android實現(xiàn)手勢滑動(左滑和右滑)

    Android實現(xiàn)手勢滑動(左滑和右滑)

    這篇文章主要為大家詳細介紹了Android實現(xiàn)手勢滑動,左滑和右滑效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • Android實現(xiàn)Tab切換界面功能詳解

    Android實現(xiàn)Tab切換界面功能詳解

    這篇文章主要為大家詳細介紹了Android如何實現(xiàn)Tab切換界面的功能,以及對Tab變化事件進行監(jiān)聽。文中示例代碼講解詳細,感興趣的可以了解一下
    2022-05-05
  • Android啟動相機拍照并返回圖片

    Android啟動相機拍照并返回圖片

    Android啟動相機拍照并返回圖片,事先定義拍照方法,在啟動拍照之前先判斷內存是否可用,通過重寫onactivityresult()方法,獲取拍好的圖片。對下文感興趣的朋友可以參考下
    2015-10-10
  • Android Studio 通過登錄功能介紹SQLite數據庫的使用流程

    Android Studio 通過登錄功能介紹SQLite數據庫的使用流程

    SQLite是一款輕型的數據庫,是遵守ACID的關系型數據庫管理系統(tǒng),它包含在一個相對小的C庫中。這篇文章主要介紹了Android Studio 通過登錄功能介紹SQLite數據庫的使用流程,需要的朋友可以參考下
    2018-09-09
  • 25個實用酷炫的Android開源UI框架

    25個實用酷炫的Android開源UI框架

    本文為大家分享了25個實用酷炫的Android開源UI框架,靈活運用這些UI框架可在日常工作中節(jié)省不少時間
    2018-04-04
  • Android中獲取手機屏幕大小的方法

    Android中獲取手機屏幕大小的方法

    這篇文章主要介紹了Android中獲取手機屏幕大小的方法,Android開發(fā)需要獲得屏幕的寬高,本文為大家解析 Android中如何獲取手機屏幕大小,需要的朋友可以參考下
    2015-12-12
  • Android實現(xiàn)仿網易今日頭條等自定義頻道listview 或者grideview等item上移到另一個view中

    Android實現(xiàn)仿網易今日頭條等自定義頻道listview 或者grideview等item上移到另一個view中

    這篇文章主要介紹了Android實現(xiàn)仿網易今日頭條等自定義頻道listview 或者grideview等item上移到另一個view中 的相關資料,需要的朋友可以參考下
    2016-03-03
  • Flutter學習之SliverList和SliverGird的使用詳解

    Flutter學習之SliverList和SliverGird的使用詳解

    Sliver的組件一般都用在CustomScrollView中,除了SliverAppBar之外,我們還可以為CustomScrollView添加List或者Grid來實現(xiàn)更加復雜的組合效果。本文就來聊聊SliverList和SliverGird的使用吧
    2023-02-02
  • Android開發(fā)必備技巧之高效字符串篩選

    Android開發(fā)必備技巧之高效字符串篩選

    在開發(fā)過程中或多或少都要使用一些方法去篩選符合我們要求的字符串,所以下面我們就來介紹一些在開發(fā)工作中常用到的字符串篩選方法,讓大家都能掌握高效的字符串篩選技巧吧
    2023-06-06
  • 融會貫通Android?Jetpack?Compose中的Snackbar

    融會貫通Android?Jetpack?Compose中的Snackbar

    這篇文章主要為大家介紹了融會貫通Android?Jetpack?Compose中的Snackbar方法及使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01

最新評論