黑马程序员技术交流社区

标题: 在XML布局文件中EditText组件above设置报错!求指点中..... [打印本页]

作者: 王开冰    时间: 2016-2-19 20:20
标题: 在XML布局文件中EditText组件above设置报错!求指点中.....
求前辈们指点:
1,TextView组件设置在Button(android:id="@+id/bt_start" )的下方(android:layout_below="@id/bt_start"),
没有问题.
2, EditText组件设置在Button的上方(android:layout_above="@id/bt_start")却报错,提示如图所示,缺失为何???

作者: 王开冰    时间: 2016-2-19 20:23
本帖最后由 王开冰 于 2016-2-19 20:31 编辑

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

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

布局异常.png

作者: Coolman    时间: 2016-2-19 21:52
@+id/bt_start
作者: BlackFlag    时间: 2016-2-20 12:27
你把EditText放到Button下面就行了,反正是相对布局,只要指定相了对位置,代码的顺序不影响控件摆放的位置。应该先写一个控件,之后再写相对于它的其他控件。
作者: 王开冰    时间: 2016-2-20 15:25
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,等前辈们继续解答中

作者: heimagirls    时间: 2016-2-20 17:04
把EditText放在Button上面错误的原因:@id是在R.java文件里根据名称找某一个控件。你还没有创建button它找不到Button的名字,所以你在EditText里引用,就报错了。
作者: BlackFlag    时间: 2016-2-20 17:21
王开冰 发表于 2016-2-20 15:25
谢谢解答!
1.EditText放到Button的下面,没有报错
2,但在模拟器运行的时候,提示说"java.lang.ClassCastExc ...

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

但TextView设置放在Button下面就没有报错,Button已经创建了,并且也设置了ID为bt_start
作者: heimagirls    时间: 2016-2-20 17:42
王开冰 发表于 2016-2-20 17:22
但TextView设置放在Button下面就没有报错,Button已经创建了,并且也设置了ID为bt_start ...

哦,仔细看了一下,不知道你是先写布局文件的还是写代码突然回过头来定义的,这里应该不是布局文件的问题了,建议在代码里找下问题,或者把代码贴出来,大家一起找。
作者: 夜正黑    时间: 2016-2-21 12:33
@+id/这里是你想给控件起的名字,这样才对
作者: 249661368    时间: 2016-2-24 22:04
你必须先声明控件,然后才能指定相对于这个控件的位置




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2