Ошибка «неразрешенной ссылки» в Kotlin Android

У меня есть код:

package com.example.admin.maytinh import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.view.View import com.example.admin.maytinh.R.id.button import com.example.admin.maytinh.R.id.editText import com.example.admin.maytinh.R.id.editText2 import com.example.admin.maytinh.R.id.editText3 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) button.setOnClickListener(View.OnClickListener{xuly()}) } public fun xuly(){ val a:Int = editText.text.ToString().ToInt() val b:Int = editText2.text.ToString().ToInt() val c:Int = a + b editText3.text = c.ToString() } } 

Когда я запускаю его, я получаю ошибки:

  • неразрешенный справочный наборOnClickListener
  • неразрешенная ссылка: текст
  • неразрешенная ссылка: ToString

Любой может объяснить мне, почему это так и исправить. Спасибо.

Вы импортируете идентификаторы, а не просмотры. Вместо:

 import com.example.admin.maytinh.R.id.button import com.example.admin.maytinh.R.id.editText import com.example.admin.maytinh.R.id.editText2 import com.example.admin.maytinh.R.id.editText3 

использовать это:

 import kotlinx.android.synthetic.main.activity_main.* 

и добавьте плагин в файл приложения gradle:

 apply plugin: 'kotlin-android-extensions' 

Похоже, вы пытаетесь использовать Kotlin Android Extensions . Для этого импортируйте:

 import kotlinx.android.synthetic.main.activity_main.* 

вместо

 import com.example.admin.maytinh.R.id.button import com.example.admin.maytinh.R.id.editText import com.example.admin.maytinh.R.id.editText2 import com.example.admin.maytinh.R.id.editText3 

Потратьте несколько минут на чтение, как работает KAE – это вам очень поможет.

Более того, таких методов, как ToString() и ToInt() . То, что вы ищете, это: toString() и toInt() .

Вы получили unresolved ошибку, потому что у вас нет импортированного представления. Вместо просмотра вы импортировали идентификаторы.

Импорт Для импорта одного вида

 import kotlinx.android.synthetic.main.<layout_name>.<view_name>; 

или

Чтобы импортировать все свойства виджета для определенного макета

 import kotlinx.android.synthetic.main.<layout>.* 

Также вам нужно включить плагин Android Extensions Gradle в файле build.gradle вашего модуля:

 apply plugin: 'kotlin-android-extensions'