kotlin View.OnClickListener?预计[重复]

Posted

技术标签:

【中文标题】kotlin View.OnClickListener?预计[重复]【英文标题】:kotlin View.OnClickListener? was expected [duplicate] 【发布时间】:2020-11-16 18:15:41 【问题描述】:

我正在尝试让这个切换按钮工作 - 我想要做的就是在控制台中打印“你好”,但我收到了这个错误

Type mismatch: inferred type is Unit but View.OnClickListener? was expected

包 com.radiomedia.drn1

import android.os.Bundle
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*


class MainActivity : AppCompatActivity()

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

        playButton.setOnClickListener(
           print("hello")
         )

    


【问题讨论】:

这能回答你的问题吗? Android - How to achieve setOnClickListener in Kotlin? 【参考方案1】:

setOnClickListener() 方法更改为以下任一选项:

选项 1:

 playButton.setOnClickListener
          print("hello")
    

选项 2:

playButton.setOnClickListener(object : View.OnClickListener 
    override fun onClick(view: View?) 
        print("hello")
    

)

选项 3:

playButton.setOnClickListener(View.OnClickListener  view ->
    print("hello")
)

【讨论】:

【参考方案2】:

要么

    playButton.setOnClickListener 
       print("hello")
    

 playButton.setOnClickListener(object: View.OnClickListener 
        override fun onClick(v: View?) 
            TODO("Not yet implemented")
        

    )

【讨论】:

【参考方案3】:

你需要改用大括号,像这样:

playButton.setOnClickListener
       print("hello")
     

【讨论】:

以上是关于kotlin View.OnClickListener?预计[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin|Kotlin反射

KotlinKotlin 语言简介 ( Kotlin 语言发展 | Kotlin 语言与 Java 虚拟机 | Java 与 Kotlin 联系 | Kotlin 跨平台特性 )

Kotlin|Kotlin反射

Kotlin初识Kotlin

Kotlin|Kotlin反射

Kotlin——数组