【问题标题】:First time with Android Studio, having one small surprise on "Error:(24cannot find symbol class button第一次使用Android Studio,对“错误:(24找不到符号类按钮)有一个小惊喜
【发布时间】:2017-07-25 17:42:25
【问题描述】:

我正在关注这个course 并尽我所能。但是,当我尝试运行我的代码时,它会说

“错误:(24, 19) 错误:找不到符号类按钮”

这是否意味着我还没有定义在哪里可以找到按钮?

看起来像这样

http://imgur.com/a/Vlq7I

非常感谢任何反馈! :D

【问题讨论】:

  • Button(带有大写 B)名称在 Java 中区分大小写(与大多数编程语言一样)
  • 欢迎来到堆栈溢出!请拨打tour。另外,不要发布您的代码图像,而是将其复制粘贴到您的问题中(格式正确)

标签: java android


【解决方案1】:

在下面的行中,您尝试将其转换为变量名 (button),而这无法完成

button = (button) findViewById(R.id.button);

应该是:

button = (Button) findViewById(R.id.button);

在进行强制转换时,请记住在 parantheses() 中添加数据类型(在本例中为类名)。否则你会得到这样的语法错误。

为什么会出现语法错误?

findViewById(int id); 返回您指定的 id 的 View。而您的button 变量数据类型是Button。因此,为避免不兼容错误,您需要进行强制转换以匹配双方。

另请阅读:Why do i have to cast a Button?this questionthis

【讨论】:

  • 仅供参考:你不能cast to your button variable name,因为它在技术上没有意义。
  • @MarcinOrlowski,这正是我所说的。不能转换为变量名,应该是类名
【解决方案2】:

那一行应该是 button = (Button) findViewById(R.id.button);

findViewById 返回一个 View 类的项目,并且您的按钮变量的类型为 Button。由于ButtonView 的孩子,您可以将其转换为Button

【讨论】:

  • 不,这与他的情况无关,如果使用最近的 SDK 编译也不再是这种情况
  • 感谢两位的反馈!它有效 :) 我非常感谢您的帮助,看到“构建完成”的感觉非常令人满意!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-02
  • 2019-11-16
  • 1970-01-01
相关资源
最近更新 更多