Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Expression cannot be a selector (occur after a dot) in Kotlin

Tags:

android

kotlin

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()
        })
    }
}

I am getting a message expression cannot be a selector (occur after a dot) on MainActivity.this in click listener.

What is the way to do this in Kotlin ?

like image 477
N Sharma Avatar asked Jun 07 '17 05:06

N Sharma


2 Answers

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

This is the right way to do in Kotlin

like image 136
Arun Shankar Avatar answered Nov 08 '22 08:11

Arun Shankar


You have to write it like this:

Toast.makeText(applicationContext, "Clicked", Toast.LENGTH_SHORT).show()
like image 1
ktsakiris Avatar answered Nov 08 '22 06:11

ktsakiris