亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

關(guān)于Kotlin寫界面時(shí)諸多控件的點(diǎn)擊事件

 更新時(shí)間:2020年03月26日 10:05:45   作者:嘩啦啦馬踏聯(lián)營(yíng)  
這篇文章主要介紹了關(guān)于Kotlin寫界面時(shí)諸多控件的點(diǎn)擊事件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

界面中控件較多的話,每個(gè)控件都設(shè)置setOnClickListener(this)是很麻煩的,為此抽出了一個(gè)Context的擴(kuò)展類:

fun Context.setViewClick(listener: View.OnClickListener, vararg views: View) {
  for (it in views) {
    it.setOnClickListener(listener)
  }
}

即只需要將Activity或Fragment實(shí)現(xiàn)View.OnClickListener接口,然后調(diào)用上面的方法,第一個(gè)參數(shù)傳this即可,后面將要設(shè)置點(diǎn)擊事件的控件傳入,然后在界面中覆寫 onClick(v: View)即可。

補(bǔ)充知識(shí):kotlin 事件監(jiān)聽(tīng)寫法 Listener寫法 筆記

class MenuKaiJiangLiShiFragment : BaseFragment(),View.OnClickListener, BaseQuickAdapter.OnItemClickListener{
 
 
override fun onItemClick(adapter: BaseQuickAdapter<*, *>?, view: View?, position: Int) {
    showToast("點(diǎn)擊了$position")
  }
 
 adapter.setOnItemClickListener(this)

第一種同java類繼承interface 實(shí)現(xiàn)方法

adapter.setUpFetchListener { showToast("刷新中...") }

第二種kotlin自己得寫法,當(dāng)監(jiān)聽(tīng)interface的方法中沒(méi)有參數(shù)可以使用這種超簡(jiǎn)單寫法,如果方法中有參數(shù)使用這種編輯器會(huì)報(bào)錯(cuò)不能通過(guò)編譯

adapter.setOnLoadMoreListener(object:BaseQuickAdapter.RequestLoadMoreListener{
      override fun onLoadMoreRequested() {
        showToast("加載中...")
        adapter.loadMoreComplete()
      }
    }, rv_kjls)

第三種kotlin寫法,使用object關(guān)鍵字,匿名內(nèi)部類方式

adapter.setOnLoadMoreListener({
      showToast("加載中...")
      adapter.loadMoreComplete()
    }, rv_kjls)

as提示我可以優(yōu)化代碼,果斷alt+enter

今天寫長(zhǎng)按時(shí)間的時(shí)候遇到有返回值的listener

第四種加返回值。注意在->后面加true 或者false ,這就是返回值。。。。寫出來(lái)了發(fā)現(xiàn)真簡(jiǎn)單,不知道的時(shí)候真是一臉懵逼~

    allocAdapter.setOnItemLongClickListener{
      adapter, view, position-> 
       代碼塊
 
      true
      
    }

看自定義listener的時(shí)候發(fā)現(xiàn)->后面寫返回值的

private lateinit var listen: ((Int) -> Unit)
 
  fun setListen(listen: ((Int) -> Unit)) {
    this.listen = listen
  }
 
 
//定義個(gè)延遲加載的listener變量,屬性是一個(gè)方法,方法內(nèi)有3個(gè)參數(shù),字符串,布爾,實(shí)體類,返回值是布爾
private lateinit var listen: ((String, Boolean, Bean) -> Boolean)
 
  fun setListen(listen: ((String, Boolean, Bean) -> Boolean) {
    this.listen = listen
  }
class XSPagerAdapter(fm: FragmentManager, list: ArrayList<CommonInvitationFragment>) : FragmentPagerAdapter(fm) {
  private var fragmentList: ArrayList<CommonInvitationFragment> = list
 
  override fun getItem(position: Int): Fragment {
    return fragmentList[position]
  }
 
  override fun getCount(): Int {
    return fragmentList.size
  }
 
}

記錄kotlin怎樣使用構(gòu)造參數(shù)

以上這篇關(guān)于Kotlin寫界面時(shí)諸多控件的點(diǎn)擊事件就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論