我最近才开始学习如何开发应用程序,而我对Java也很陌生,所以这个问题听起来有点愚蠢。初始化按钮或任何其他小部件时,我已经看到大多数教程都使用类似于Button TranslateBtn = (Button) findViewById(R.id.TranslateBtn);的代码行,但是,当我尝试像这样运行Button TranslateBtn = findViewById(R.id.TranslateBtn);的代码时,它也以相同的方式工作。但是,我的代码非常简单,这就是为什么我想知道方括号是否具有有助于编写更复杂代码的其他功能。

最佳答案

对于android,findViewById返回View。基本上所有UI组件的类型都是View。要获取Button的属性,我们必须将findViewById的结果强制转换为Button

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


这是ID为ViewTranslateBtn的(显式)强制类型转换为Button的类型。

但是,这已经过时了,不再需要了

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


也有效。

请查看documentation以获得更多官方信息,特别是:


  在大多数情况下-取决于编译器支持-生成的视图
  自动转换为目标类类型。如果目标阶层
  类型不受限制,可能需要显式强制转换。


希望这可以帮助

10-08 19:17