zoukankan      html  css  js  c++  java
  • Kotlin开发 使用lambda实现接口回调

    前言

      在体验kotlin后,你一定会kotlin实现一些简单的接口回调方法的lambda印象深刻。例如下面的代码:

            val button = Button(this)
            button.setOnClickListener { 
                //在此处实现点击逻辑
            }

    这大大的减少了重复的模板代码。提高了代码的阅读效率。所以,此篇博客讲解我们如何实现这种lambda接口回调。

    注意点

      lambda形式的回调,只适合有单个参数值回调的方式。多个方法的回调,还应该是Java的形式。创建接口类,创建多个接口方法。

    讲解部分

    代码

    class MainActivity : AppCompatActivity() {
        private lateinit var listener: (String) -> Unit 
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
    
            setOnListener { textView.text = it }
    
            Handler().postDelayed(Runnable {
                listener.invoke("触发成功")
            }, 1000)
    
        }
    
        fun setOnListener(str: (String) -> Unit){
            listener = str
        }
    }

    1.首先在创建一个延后初始化的全局变量 private lateinit var listener: (String) -> Unit

    2.然后实现setOnListener方法

    3.最后的重点是使用invoke发布数据,我这里使用了一个Handler模拟延迟的数据回调

    End

  • 相关阅读:
    2019年春季学期第三周作业
    2019春第二周作业+一些的挑战作业
    查找整数
    寒假作业3编辑总结
    寒假作业2编辑总结
    对自己影响最大的老师
    2019春第九周作业
    2019春第八周作业
    2019春第七周作业
    2019春第六周作业
  • 原文地址:https://www.cnblogs.com/guanxinjing/p/13712991.html
Copyright © 2011-2022 走看看