怎么把fab.setOnclickListener(this)转换成kotlin?

时间:2019-08-21 08:52:26

标签: android kotlin androidx

我正在用kotlin编写代码。我想知道如何将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

1 个答案:

答案 0 :(得分:1)

@John Joe想要说的是,您可以使用:

fab?.setOnClickListener { 
            //implement logic
        }

无需传递this,因为this引用了setOnClickListener方法的处理程序

所以,您也可以拥有它:

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