安卓控件布局的问题(来自初学者)
创建一个Activity有四个控件,layout的main.xml如下:(一)报错的情况error信息:09-0502:48:25.028:E/AndroidRuntim...
创建一个Activity有四个控件,layout的main.xml如下:
(一)报错的情况
error信息:
09-05 02:48:25.028: E/AndroidRuntime(5263): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.activity03/com.example.activity03.Activity03}: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.EditText
《main.xml》
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/facetorOne"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/symbol"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/facetorTwo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/calculate"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
(二)不报错的情况
我把上面的xml 控件位置调整下,就不报错了。
《main.xml》
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/facetorOne"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/facetorTwo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/symbol"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/calculate"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
问题:为什么控件位置调了一下,就正常了啊?
也就是说请教error中 “java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.EditText ” 啥意思啊? 谢谢!
Activity里是这么写的:
factorOne = (EditText)findViewById(R.id.facetorOne);
symbol = (TextView)findViewById(R.id.symbol);
factorTwo = (EditText)findViewById(R.id.facetorTwo);
calculate = (Button)findViewById(R.id.calculate); 展开
(一)报错的情况
error信息:
09-05 02:48:25.028: E/AndroidRuntime(5263): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.activity03/com.example.activity03.Activity03}: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.EditText
《main.xml》
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/facetorOne"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/symbol"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/facetorTwo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/calculate"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
(二)不报错的情况
我把上面的xml 控件位置调整下,就不报错了。
《main.xml》
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/facetorOne"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/facetorTwo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/symbol"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/calculate"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
问题:为什么控件位置调了一下,就正常了啊?
也就是说请教error中 “java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.EditText ” 啥意思啊? 谢谢!
Activity里是这么写的:
factorOne = (EditText)findViewById(R.id.facetorOne);
symbol = (TextView)findViewById(R.id.symbol);
factorTwo = (EditText)findViewById(R.id.facetorTwo);
calculate = (Button)findViewById(R.id.calculate); 展开
2个回答
推荐于2016-01-10 · 知道合伙人软件行家
关注
展开全部
很明显啊,这里是说你类型转换异常了
java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.EditText
TextView 不能转换成EditText
你看看你Activity里 findViewById 是不是把EditText的ID弄到TextView那里去了
java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.EditText
TextView 不能转换成EditText
你看看你Activity里 findViewById 是不是把EditText的ID弄到TextView那里去了
更多追问追答
追问
factorOne = (EditText)findViewById(R.id.facetorOne);
symbol = (TextView)findViewById(R.id.symbol);
factorTwo = (EditText)findViewById(R.id.facetorTwo);
calculate = (Button)findViewById(R.id.calculate);
追答
很明显啊,这里是说你类型转换异常了
java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.EditText
TextView 不能转换成EditText
检查一下你的ID是不是对应的TextView和EditText
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询