无法从 xml 定义中找到 Activity 中的 onClick 方法

2023-12-21

我试图将一个函数链接到 AndroidStudio 中按钮的 onClick 属性,但由于某种原因,系统无法识别我编码的方法。

有趣的是,当我用 Java 编写代码时,它可以正常工作。在 Kotlin 中则不然。我更新了 Kotlin 并检查了其配置,但找不到问题。我的朋友在 Linux 计算机上尝试了我所做的同样的事情,结果对他有用。我有一个 Mac 操作系统,我不知道是否需要一些额外的配置。谁能帮我?

这是我的简单活动:

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:

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginEnd="16dp"
    android:layout_marginStart="16dp"
    android:layout_marginTop="16dp"
    android:onClick="sendMessage"
    android:text="@string/send_button"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toEndOf="@+id/editText"
    app:layout_constraintTop_toTopOf="parent" />

在 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 顶视图

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法从 xml 定义中找到 Activity 中的 onClick 方法 的相关文章

随机推荐

  • 制作时钟 UWP (C#)

    我正在为 Windows 10 编写应用程序 需要在 UI 中显示时间 我把显示器做了这样的 Time Text DateTime Now ToString h mm ss tt 但我需要更新它 关于如何做到这一点有什么建议吗 在您的 XA
  • Android 中匹配正则表达式模式的问题

    我正在尝试搜索这个字符串 tt ABC r 725 00 a 55 30 For r 725 00 这是我当前的代码 Pattern p Pattern compile r 0 9 0 9 0 9 Matcher m p matcher r
  • Androidcamera2createCaptureRequest在获取YUV_420_888图像时返回所有黑色像素

    我有一个 Android Camera2 APIpreview在 Kotlin 中使用 suspendCoroutine 进行所有表面设置和回调 运行正常 但是 当我尝试在应用程序启动后 5 秒拍照时 TEMPLATE STILL CAPT
  • ARM 单拷贝原子性

    我目前正在费力地阅读 ARMv7 内核的 ARM 架构手册 在关于内存访问原子性的章节 A3 5 3 中 它指出 如果单副本原子加载与单副本原子存储重叠并且 对于任何重叠字节 加载返回的数据写入 写入插入到该字节的一致性顺序中 单副本原子存
  • 如何在实时Flot图表中显示Json随机数?

    我在 C 页面中创建了一个存储在 json 对象中的随机数 if method rnd Random number this Page Response ContentType application json2 Random rnd ne
  • 有没有标准方法可以使用 stl 在 Linux 上使用 gcc 执行 findfirst、findnext 操作?

    我似乎无法在 Linux 的 gcc 上找到 findfirst findfirst findnext findnext API 并且实际上宁愿使用标准模板库 STL 如果它包含在那里 有谁知道有什么 API 可用于列出 Linux for
  • os.popen 在 Python 2.6 中真的被弃用了吗?

    网上的文档 http docs python org library os html os popen声明 os popen 现已弃用 所有其他已弃用的函数都会适当地引发 DeprecationWarning 例如 gt gt gt imp
  • ASP.NET Web Api - 使用分块传输编码时,框架不会将 JSON 转换为对象

    我在 Android 中有一个 http 客户端 将 HTTP PUT 请求发送到使用 C 和 ASP NET WebApi 框架实现的 REST api 只要 JSON 字段与 C 类中的属性匹配 框架就应该能够神奇地将 JSON 转换
  • Firebase sendPasswordResetEmail 在 React 中不起作用

    我尝试使用 firebase 创建网络应用程序的密码重置选项 其他 firebase 选项工作正常 例如 GoogleLogin 和电子邮件注册 但是当我尝试时sendPasswordResetEmail它返回以下错误 类型错误 fireb
  • 最好的 Python GIS 库? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Laravel Passport - 测试密码授予

    我使用 Laravel 5 7 和 Passport 为第一方客户端创建 API 我有一个登录表单 它接受用户的电子邮件和密码并将两者发送到自定义 LoginController 然后 LoginController 创建一个 oAuth
  • NSPredicate 不适用于字典数组

    我有一个 NSPredicate 其格式如下 Status CONTAINS cd shipped 我有一个字典数组 这是一个例子 Category Category 4 Comp Category 4 Depth 02 Grade New
  • 具有空间数据的 3D 交互式曲面图

    我想创建一个湖泊深度的交互式 3D 表面图 最好使用plotly or rgl图书馆 我已经从一个中提取了我的数据SpatialLinesDataFrameGauss Krueger EPSG 31468 CRS 中的等高线 即公制单位 现
  • 2010 年 .NET Compact Framework 是否更新?

    这个问题 net 紧凑框架 4 0 https stackoverflow com questions 245566 net compact framework 4 0 在VS 2010发布之前就问过这个问题 答案基本上都是说等待发布 现在
  • 请求的资源node.js上不存在Access-Control-Allow-Origin标头[重复]

    这个问题在这里已经有答案了 我在尝试通过 ajax 请求与我的 node js 服务器通信时遇到问题 我已经这样配置我的服务器 var allowCrossDomain function req res next res header Ac
  • 无法从 xml 定义中找到 Activity 中的 onClick 方法

    我试图将一个函数链接到 AndroidStudio 中按钮的 onClick 属性 但由于某种原因 系统无法识别我编码的方法 有趣的是 当我用 Java 编写代码时 它可以正常工作 在 Kotlin 中则不然 我更新了 Kotlin 并检查