I am using Kotlin library to code my android app. I have one activity with one button. I have set click listener on it, I am displaying a toast on clicking on button.

import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.widget.Toast
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

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

        submitButton.setOnClickListener({ view ->
            Toast.makeText(MainActivity.this, "Clicked", Toast.LENGTH_SHORT).show()
        })
    }
}

我在click listener中得到一个消息表达式不能是MainActivity.this上的 Select 器(发生在一个点之后).

What is the way to do this in Kotlin ?

推荐答案

Toast.makeText(this@MainActivity, "Clicked", Toast. LENGTH_SHORT).show()

在Kotlin 这样做是正确的

Kotlin相关问答推荐

如果一项工作失败,请继续在Kotlin 等待其他工作/子元素完成

如何在Kotlin中反射多个对象以查找特定类型的属性

在KMP中使用koin将来自Android的上下文注入到SQLDelight Driver中

Jetpack Compose中的数字 Select 器问题

如何注入返回通用列表的转换器?

如何在 Kotlin 中初始化 Short 数组?

Kotlin SIZE_BYTES

init中的NPE抽象函数变量

如何缩短 MaterialTheme.colors.primary?

为什么 Kotlin 在 sumOf 函数 lambda 中默认不将数字视为Int?

如何在 kotlin 中通过反射设置委托属性值?

在 Kotlin 中通过反射获取 Enum 值

Kotlin 中的数据类

Kotlin DataBinding 将静态函数传递到布局 xml

Kotlin如何分派invoke操作符?

Kotlin协程处理错误和实现

Android 上的 Kotlin:将map到list

Java Integer.MAX_VALUE 与 Kotlin Int.MAX_VALUE

kotlin 委托有什么用?

通过在 kotlin-gradle 中使用子项目Unresolved reference: implementation