Я новичок в Kotlin и не знаю, как исправить эту ошибку: Неразрешенная ссылка: view. Моя цель - нажать кнопку, чтобы перейти к другому действию. Копирую код:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
findViewById<Button>(R.id.button).setOnClickListener{
sendMessage(view)
}
}
val EXTRA_MESSAGE = "com.example.monedas.MESSAGE"
fun sendMessage(it: view) {
val intent = Intent(this, ListActivity::class.java)
val editText : TextView = findViewById(R.id.textView4)
val message = editText.text.toString()
intent.putExtra(EXTRA_MESSAGE, message)
startActivity(intent)
}
}
Вы передаете неопределенный параметр в функцию sendMessage().
Вы нигде не объявляли эту переменную view.
Но похоже, что вам это не нужно, как не нужен аргумент it of sendMessage().
Итак, измените на:
fun sendMessage() {
val intent = Intent(this, ListActivity::class.java)
val editText : TextView = findViewById(R.id.textView4)
val message = editText.text
intent.putExtra(EXTRA_MESSAGE, message)
startActivity(intent)
}
и назовите это так:
findViewById<Button>(R.id.button).setOnClickListener{
sendMessage()
}
В качестве примечания:
В Kotlin вам не нужно использовать findViewById(), если вы хотите получить доступ к View раздутого макета в своем классе активности.
Просто убедитесь, что вы импортировали:
import kotlinx.android.synthetic.main.activity_main.*
и тогда вы можете просто сделать:
button.setOnClickListener{ sendMessage() }
и в sendMessage():
fun sendMessage() {
val intent = Intent(this, ListActivity::class.java)
intent.putExtra(EXTRA_MESSAGE, textView4.text)
startActivity(intent)
}