关于Kotlin写界面时诸多控件的点击事件

 更新时间:2020年03月26日 10:05:45   作者:哗啦啦马踏联营  
这篇文章主要介绍了关于Kotlin写界面时诸多控件的点击事件,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

界面中控件较多的话,每个控件都设置setOnClickListener(this)是很麻烦的,为此抽出了一个Context的扩展类:

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

即只需要将Activity或Fragment实现View.OnClickListener接口,然后调用上面的方法,第一个参数传this即可,后面将要设置点击事件的控件传入,然后在界面中覆写 onClick(v: View)即可。

补充知识:kotlin 事件监听写法 Listener写法 笔记

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

第一种同java类继承interface 实现方法

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

第二种kotlin自己得写法,当监听interface的方法中没有参数可以使用这种超简单写法,如果方法中有参数使用这种编辑器会报错不能通过编译

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

第三种kotlin写法,使用object关键字,匿名内部类方式

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

as提示我可以优化代码,果断alt+enter

今天写长按时间的时候遇到有返回值的listener

第四种加返回值。注意在->后面加true 或者false ,这就是返回值。。。。写出来了发现真简单,不知道的时候真是一脸懵逼~

    allocAdapter.setOnItemLongClickListener{
      adapter, view, position-> 
       代码块
 
      true
      
    }

看自定义listener的时候发现->后面写返回值的

private lateinit var listen: ((Int) -> Unit)
 
  fun setListen(listen: ((Int) -> Unit)) {
    this.listen = listen
  }
 
 
//定义个延迟加载的listener变量,属性是一个方法,方法内有3个参数,字符串,布尔,实体类,返回值是布尔
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怎样使用构造参数

以上这篇关于Kotlin写界面时诸多控件的点击事件就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Android实现圆形纯数字按钮

    Android实现圆形纯数字按钮

    这篇文章主要为大家详细介绍了Android实现圆形纯数字按钮,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • Android 中RecyclerView多种item布局的写法(头布局+脚布局)

    Android 中RecyclerView多种item布局的写法(头布局+脚布局)

    这篇文章主要介绍了Android 中RecyclerView多种item布局的写法(头布局+脚布局)的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-01-01
  • android开发 eclipse alt+”/”自动提示失效的解决方法

    android开发 eclipse alt+”/”自动提示失效的解决方法

    最近在学习android开发布局这块。第一次学习,很多代码不熟悉。所以自动提示对我来说很重要。但悲催的就是这个自动提示失效。今天在网上搜索了一下解决办法,主要有一下几种方法
    2014-05-05
  • Android 控件GridView使用案例讲解

    Android 控件GridView使用案例讲解

    这篇文章主要介绍了Android 控件GridView使用案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Android实现网易严选标签栏滑动效果

    Android实现网易严选标签栏滑动效果

    这篇文章主要为大家详细介绍了Android实现网易严选标签栏滑动效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • Jetpack navigation组件超详细讲解

    Jetpack navigation组件超详细讲解

    首先Navigation是一个架构组件,因为切换Activity是一个Binder通信的过程,所以Activity是属于比较重的组件。而Fragment的切换其实只是View的切换,比较轻量级。因此单Activity加Fragment切换成为了比较常见的架构方式
    2022-10-10
  • Android中MPAndroidChart自定义绘制最高点标识的方法

    Android中MPAndroidChart自定义绘制最高点标识的方法

    目前在做一款软件,要求在展示走势图的时候对最高点进行自定义绘制,下面这篇文章主要给大家介绍了关于Android中MPAndroidChart自定义绘制最高点标识的方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2018-03-03
  • AndroidStudio图片压缩工具ImgCompressPlugin使用实例

    AndroidStudio图片压缩工具ImgCompressPlugin使用实例

    这篇文章主要为大家介绍了AndroidStudio图片压缩工具ImgCompressPlugin使用实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • Android之OOM异常解决案例讲解

    Android之OOM异常解决案例讲解

    这篇文章主要介绍了Android之OOM异常解决案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Android 线程优化知识点学习

    Android 线程优化知识点学习

    这篇文章主要为大家介绍了Android线程优化知识点学习,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08

最新评论