作者Xavier (X.avi(er))
看板AndroidDev
标题[问题] 编辑 layout.xml 的元件後程式发生错误
时间Wed Dec 5 15:32:46 2012
板友好:
小弟最近接触 Android 设计,
我把某个 tablerow 从画面中间位置拉到最上面,(最上层为linearLayout)
然後编译程式就出现如下错误讯息:(多到它不想印出来...)
12-05 15:19:40.009: D/AndroidRuntime(17690): Shutting down VM
12-05 15:19:40.009: W/dalvikvm(17690): threadid=1: thread exiting with
uncaught exception (group=0x4001d5a0)
12-05 15:19:40.009: E/AndroidRuntime(17690): FATAL EXCEPTION: main
12-05 15:19:40.009: E/AndroidRuntime(17690): java.lang.RuntimeException:
Unable to start activity
ComponentInfo{lhu.stevenpon.f713.com/lhu.stevenpon.f713.com.hotlifebluetoothspp}:
java.lang.ClassCastException: android.widget.TableRow
12-05 15:19:40.009: E/AndroidRuntime(17690): at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1872)
12-05 15:19:40.009: E/AndroidRuntime(17690): at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1893)
12-05 15:19:40.009: E/AndroidRuntime(17690): at
android.app.ActivityThread.access$1500(ActivityThread.java:135)
12-05 15:19:40.009: E/AndroidRuntime(17690): at
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1054)
12-05 15:19:40.009: E/AndroidRuntime(17690): at
android.os.Handler.dispatchMessage(Handler.java:99)
12-05 15:19:40.009: E/AndroidRuntime(17690): at
android.os.Looper.loop(Looper.java:150)
12-05 15:19:40.009: E/AndroidRuntime(17690): at
android.app.ActivityThread.main(ActivityThread.java:4385)
12-05 15:19:40.009: E/AndroidRuntime(17690): at
java.lang.reflect.Method.invokeNative(Native Method)
12-05 15:19:40.009: E/AndroidRuntime(17690): at
java.lang.reflect.Method.invoke(Method.java:507)
12-05 15:19:40.009: E/AndroidRuntime(17690): at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849)
12-05 15:19:40.009: E/AndroidRuntime(17690): at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
12-05 15:19:40.009: E/AndroidRuntime(17690): at
dalvik.system.NativeStart.main(Native Method)
12-05 15:19:40.009: E/AndroidRuntime(17690): Caused by:
java.lang.ClassCastException: android.widget.TableRow
12-05 15:19:40.009: E/AndroidRuntime(17690): at
lhu.stevenpon.f713.com.hotlifebluetoothspp.onCreate(hotlifebluetoothspp.java:128)
12-05 15:19:40.009: E/AndroidRuntime(17690): at
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1072)
12-05 15:19:40.009: E/AndroidRuntime(17690): at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1836)
12-05 15:19:40.009: E/AndroidRuntime(17690): ... 11 more
出现错误的程式码:
mOutEditText = (EditText) findViewById(R.id.edit01);
我是使用 eclipse 编辑程式,滑鼠停留在变数 R.id.edit01 上
会显示一个记忆体位址(?),而在我上移 TableRow後,该记忆体位址会
改变,导致编译时找不到该变数,而发生错误。 (朋友给我的解释)
请问各位板友:
如果不能直接用拉的做编辑,那假设我想修改一个已经设计好的 .xml档,
应该要如何着手呢?
感谢赐教!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.130.201.154
※ 编辑: Xavier 来自: 220.130.201.154 (12/05 16:17)
1F:→ kewang:codecodecodecodecodecodecodecodecodecodecodecodecode... 12/05 16:46
2F:→ bukiya:R.id.edit01是TableRow? 那转型成EditText当然会失败 12/05 16:46
3F:→ Xavier:R.id.edit01是EditText, 放在一个TableRow里。 12/05 17:04
※ 编辑: Xavier 来自: 111.246.79.54 (12/05 19:46)
4F:→ asilzheng:改变 UI layout 後 请先 clean 再重 build 12/05 22:40
5F:→ Xavier:好的 谢谢你的建议! 12/05 23:21