在xml定义的活动中找不到onClick方法
我试图将一个函数链接到AndroidStudio中的按钮的onClick属性,但出于某种原因,系统无法识别我编码的方法。
有趣的是,当我用Java编写代码时,它工作正常。 在Kotlin它不是。 我更新了我的Kotlin并检查了它的配置,但是我找不到问题。 我的朋友尝试了我在Linux电脑上做的同样的事情,并且为他工作。 我有一个Mac OS,我不知道是否有一些额外的配置照顾。 谁能帮我?
这是我的简单活动:
import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.view.View class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } fun sendMessage(view: View) { } }
这是xml:
在build.gradle我有:
apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions'
错误信息:
Corresponding method handler 'public void sendMessage(android.view.View)' not found The onClick attribute value should be the name of a method in this View's context to invoke when the view is clicked. This name must correspond to a public method that takes exactly one parameter of type View. Must be a string value, using '\;' to escape characters such as '\n' or '\uxxxx' for a unicode character
尝试添加
tools:context="com.somepackage.MainActivity"
到您的顶视图在XML中
它现在有效。 我不得不重新启动AndroidStudio。 我仍然不能使用设计选项卡中的属性窗口来添加函数,但是如果我直接编辑XML,它将起作用。