3

I am trying to get this toggle button to work - All I want to do is print in console "hello" but am getting this error

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

package 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")
         )

    }

}
RussellHarrower
  • 6,470
  • 21
  • 102
  • 204
  • 2
    Does this answer your question? [Android - How to achieve setOnClickListener in Kotlin?](https://stackoverflow.com/questions/44301301/android-how-to-achieve-setonclicklistener-in-kotlin) – Felix Jul 27 '20 at 12:11

3 Answers3

3

Change setOnClickListener() method as any of the below options:

Option 1:

 playButton.setOnClickListener{
          print("hello")
    }

Option 2:

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

})

Option 3:

playButton.setOnClickListener(View.OnClickListener { view ->
    print("hello")
})
Shalu T D
  • 3,921
  • 2
  • 26
  • 37
2

You need to use braces instead, like this:

playButton.setOnClickListener{
       print("hello")
     }
Shreemaan Abhishek
  • 1,134
  • 1
  • 7
  • 33
1

either

    playButton.setOnClickListener {
       print("hello")
    }

or

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

    })
Blackbelt
  • 156,034
  • 29
  • 297
  • 305