A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

2黑马币
求前辈们指点:
1,TextView组件设置在Button(android:id="@+id/bt_start" )的下方(android:layout_below="@id/bt_start"),
没有问题.
2, EditText组件设置在Button的上方(android:layout_above="@id/bt_start")却报错,提示如图所示,缺失为何???

10 个回复

倒序浏览
本帖最后由 王开冰 于 2016-2-19 20:31 编辑

补充下图片,上面的图片很不清晰!!!

布局异常.png (127.99 KB, 下载次数: 57)

布局异常.png
回复 使用道具 举报
@+id/bt_start
回复 使用道具 举报
你把EditText放到Button下面就行了,反正是相对布局,只要指定相了对位置,代码的顺序不影响控件摆放的位置。应该先写一个控件,之后再写相对于它的其他控件。
回复 使用道具 举报
BlackFlag 发表于 2016-2-20 12:27
你把EditText放到Button下面就行了,反正是相对布局,只要指定相了对位置,代码的顺序不影响控件摆放的位置 ...

谢谢解答!
1.EditText放到Button的下面,没有报错
2,但在模拟器运行的时候,提示说"java.lang.ClassCastException: android.widget.EditText cannot be cast to android.widget.Button"
类型转换异常,EditText组件不能转换成Button组件.



3,等前辈们继续解答中
回复 使用道具 举报
把EditText放在Button上面错误的原因:@id是在R.java文件里根据名称找某一个控件。你还没有创建button它找不到Button的名字,所以你在EditText里引用,就报错了。
回复 使用道具 举报
王开冰 发表于 2016-2-20 15:25
谢谢解答!
1.EditText放到Button的下面,没有报错
2,但在模拟器运行的时候,提示说"java.lang.ClassCastExc ...

不是布局文件的问题,应该是你的activity文件里面的代码编写问题,但是你没有给出你activity里面的代码,显示EditText不能强转成Button。
回复 使用道具 举报
heimagirls 发表于 2016-2-20 17:04
把EditText放在Button上面错误的原因:@id是在R.java文件里根据名称找某一个控件。你还没有创建button它找 ...

但TextView设置放在Button下面就没有报错,Button已经创建了,并且也设置了ID为bt_start
回复 使用道具 举报
王开冰 发表于 2016-2-20 17:22
但TextView设置放在Button下面就没有报错,Button已经创建了,并且也设置了ID为bt_start ...

哦,仔细看了一下,不知道你是先写布局文件的还是写代码突然回过头来定义的,这里应该不是布局文件的问题了,建议在代码里找下问题,或者把代码贴出来,大家一起找。
回复 使用道具 举报
@+id/这里是你想给控件起的名字,这样才对
回复 使用道具 举报
你必须先声明控件,然后才能指定相对于这个控件的位置
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马