作者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)
→ kewang:codecodecodecodecodecodecodecodecodecodecodecodecode... 12/05 16:46
→ bukiya:R.id.edit01是TableRow? 那轉型成EditText當然會失敗 12/05 16:46
→ Xavier:R.id.edit01是EditText, 放在一個TableRow裡。 12/05 17:04
※ 編輯: Xavier 來自: 111.246.79.54 (12/05 19:46)
→ asilzheng:改變 UI layout 後 請先 clean 再重 build 12/05 22:40
→ Xavier:好的 謝謝你的建議! 12/05 23:21