如何将 fab.setOnclickListener(this) 转换为 kotlin.?

How to convert fab.setOnclickListener(this) into kotlin.?

我正在用 kotlin.I 编写代码,想知道如何将 fab.setOnclickListener(this) 转换为 kotlin 语言。?

class MainActivity: appCompatActivity(){
   private var fab: FloatingActionButton? = null
   override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        setSupportActionBar(toolbar)
        fab = findViewById(R.id.fab)
     fab.setOnClickListener(this)
}

预期

转换成 kotlin

@John Joe 想说的是你可以使用:

fab?.setOnClickListener { 
            //implement logic
        }

不需要传入this因为this指的是setOnClickListener方法的handler

所以,你也可以拥有它:

MainActivity: AppCompatActivity(),  View.OnClickListener{
 override fun onClick(p0: View?) {
   //handle logic for fab here    
    }
}

这样您就可以简单地使用:

fab?.setOnClickListener(this)

但是,第一个解决方案要简单得多。


旁注,因为 Kotlin 有合成导入,你可能不必使用 fab = findViewById(R.id.fab)https://kotlinlang.org/docs/tutorials/android-plugin.html