2 qq 32269293 qq_32269293 于 2016.04.06 21:39 提问

android中的java简单语法问题

android中java代码 Button simple = (Button) findViewById(R.id.simple)那个括号里的Button是类名吗?这里为什么写上(Button)而不是new呢?请原谅我java都没有学完就被逼着学android

9个回答

huqing6227
huqing6227   2016.04.06 21:53
已采纳

可以将(Button)理解为强制转换,因为findViewById(R.id.simple)这句话通过字面理解就是通过ID找到simple这个控件该控件属于view类型,
而你前面写了Button simple,显然是一个Button类型的,=号前后要保持一致,所以要加(Button),将后面findViewById(R.id.simple)返回的view类型
强制转换成Button类型

qq_32269293
qq_32269293 谢谢,壤我明白了为什么要强制转换
一年多之前 回复
qq_32269293
qq_32269293 谢谢,壤我明白了为什么要强制转换
一年多之前 回复
Wei_Smile
Wei_Smile   2016.04.06 21:45

是类名,Button类,这里是通过id找到R.id.simple这个view,但是Button是View的子类,所以要把一个View给Button需要加上(Button)强制转换

csdnkfm2016
csdnkfm2016   2016.04.06 22:29

实质上,在oncreate方法中的R.layout.myxml中就把各部分的安卓的控件的对象new出来了。因为 findViewById(R.id.simple)中的R.id.simple就是找到了你的布局文件中的一个对象,而(Button) 是强转为button对象。

suwu150
suwu150   2016.04.06 22:51

(Button)为强制转换,因为findViewById(R.id.simple)这句话通过字面理解就是通过ID找到simple这个控件该控件属于view类型

baidu_15438619
baidu_15438619   2016.04.06 21:41

这是布局文件上已经存在的button 是类名 也可以new一个layout文件上不存在的新控件

CSDNXIAON
CSDNXIAON   2016.04.06 21:41

Android中一些常用的java语法
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

xy_focus
xy_focus   2016.04.07 08:10

因为findViewById(R.id.simple)返回的是view,(Button)是强制类型转换

dongfeng9ge
dongfeng9ge   Ds   Rxr 2016.04.07 11:21

强制类型转换,你果然没学好Java

baiyuliang2013
baiyuliang2013   2016.04.07 12:35

这个用findview,是寻找xml已经定义的button,在xml中定义了就相当于已经new了,你只需要find到那个view即可,当然在你find后,它本身是一个view,因为所有控件都继承的是View,所以你想得到button,就必须强制转换为button!另外只有动态添加控件时才会用到new Button()这种方式!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!