Kotlin Android x Java中的ClickListener

时间:2018-09-26 22:09:08

标签: android kotlin

如何单击使用Kotlin?

在Java中,我确实使用过findviewbyid和setonclicklistener

在Android的Kotlin中会如何?

3 个答案:

答案 0 :(得分:1)

无需findViewById: 您可以通过ID的综合属性通过其ID引用您的视图 模块级别build.gradle文件中的“ kotlin-android-extensions”行。

build.gradle(app)文件在您的项目中: 应用插件:“ kotlin-android-extensions”

然后在您的xml文件中:

<android:id="@+id/tvForgotPsw"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:text="Forgot your password"/>

最后,在您的.kt文件中,您只需要使用视图ID及其属性:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_login)

    tvForgotPsw.setOnClickListener(object : View.OnClickListener{
        override fun onClick(p0: View?) {
        }
    })
}

答案 1 :(得分:0)

同样的方法。 Kotlin没什么不同。它只有lambda:

val view = findViewById<SomeViewClass>(R.id.some_id)
view.setOnClickListener {
    //"it" is the clicked View
}

您甚至可以将Java代码粘贴到您的IDE中,它将为您将其转换为Kotlin。

您也可以read the docs

答案 2 :(得分:0)

在kotlin中,您不需要findViewById()。 您可以使用kotlin扩展,并且具有合成绑定

对于点击监听器,与Java不同,您不需要接口的匿名实现

view.setOnClickListener({ v -> toast("Hello") })