android中的java简单语法问题

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

8个回答

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

qq_32269293
爪哇岛卖咖啡 谢谢,壤我明白了为什么要强制转换
接近 4 年之前 回复
qq_32269293
爪哇岛卖咖啡 谢谢,壤我明白了为什么要强制转换
接近 4 年之前 回复

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

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

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

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

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

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

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问