2013-04-04 249 views
0

我是一個初學者的Android(我的第一篇),並獲得運行此BMI計算器教程崩潰:http://android-meda.blogspot.co.uk/2012/01/writing-your-first-android-app-body.html?m=1BMI應用程序崩潰時計算按鈕按下

推出我的手機上,屏幕變黑消息「 BMI不幸不幸「。我不確定在哪裏診斷問題,所以任何幫助將不勝感激。 謝謝

04-04 14:14:44.750: E/SensorManager(24999): thread start 
04-04 14:14:44.755: D/SensorManager(24999): registerListener :: handle = 0 name= LSM330DLC 3-axis Accelerometer delay= 200000 Listener= [email protected]b75490 
04-04 14:14:44.760: D/SensorManager(24999): unregisterListener:: Listener= [email protected]b75490 
04-04 14:14:44.760: D/Sensors(24999): Remain listener = Sending .. normal delay 200ms 
04-04 14:14:44.760: I/Sensors(24999): sendDelay --- 200000000 
04-04 14:14:44.765: D/SensorManager(24999): JNI - sendDelay 
04-04 14:14:44.765: I/SensorManager(24999): Set normal delay = true 
04-04 14:14:44.815: D/SensorManager(24999): registerListener :: handle = 0 name= LSM330DLC 3-axis Accelerometer delay= 200000 Listener= [email protected]b75490 
04-04 14:14:44.870: D/libEGL(24999): loaded /system/lib/egl/libEGL_mali.so 
04-04 14:14:44.875: D/libEGL(24999): loaded /system/lib/egl/libGLESv1_CM_mali.so 
04-04 14:14:44.880: D/libEGL(24999): loaded /system/lib/egl/libGLESv2_mali.so 
04-04 14:14:44.885: D/(24999): Device driver API match 
04-04 14:14:44.885: D/(24999): Device driver API version: 10 
04-04 14:14:44.885: D/(24999): User space API version: 10 
04-04 14:14:44.885: D/(24999): mali: REVISION=Linux-r2p4-02rel0 BUILD_DATE=Tue Oct 16 15:37:13 KST 2012 
04-04 14:14:44.910: D/OpenGLRenderer(24999): Enabling debug mode 0 
04-04 14:14:44.985: W/IInputConnectionWrapper(24999): showStatusIcon on inactive InputConnection 
04-04 14:14:52.235: D/SensorManager(24999): unregisterListener:: Listener= [email protected]b75490 
04-04 14:14:52.235: D/Sensors(24999): Remain listener = Sending .. normal delay 200ms 
04-04 14:14:52.235: I/Sensors(24999): sendDelay --- 200000000 
04-04 14:14:52.235: D/SensorManager(24999): JNI - sendDelay 
04-04 14:14:52.235: I/SensorManager(24999): Set normal delay = true 
04-04 14:14:52.240: D/SensorManager(24999): registerListener :: handle = 0 name= LSM330DLC 3-axis Accelerometer delay= 200000 Listener= [email protected]b78da8 
04-04 14:14:52.260: W/IInputConnectionWrapper(24999): getSelectedText on inactive InputConnection 
04-04 14:14:52.265: W/IInputConnectionWrapper(24999): setComposingText on inactive InputConnection 
04-04 14:14:52.265: W/IInputConnectionWrapper(24999): getExtractedText on inactive InputConnection 

04-04 14:14:53.420: D/AndroidRuntime(24999): Shutting down VM 
04-04 14:14:53.420: W/dalvikvm(24999): threadid=1: thread exiting with uncaught exception (group=0x41f052a0) 
04-04 14:14:53.430: E/AndroidRuntime(24999): FATAL EXCEPTION: main 
04-04 14:14:53.430: E/AndroidRuntime(24999): java.lang.IllegalStateException: Could not execute method of the activity 
04-04 14:14:53.430: E/AndroidRuntime(24999): at android.view.View$1.onClick(View.java:3691) 
04-04 14:14:53.430: E/AndroidRuntime(24999): at android.view.View.performClick(View.java:4211) 
04-04 14:14:53.430: E/AndroidRuntime(24999): at android.view.View$PerformClick.run(View.java:17267) 
04-04 14:14:53.430: E/AndroidRuntime(24999): at android.os.Handler.handleCallback(Handler.java:615) 
04-04 14:14:53.430: E/AndroidRuntime(24999): at android.os.Handler.dispatchMessage(Handler.java:92) 
04-04 14:14:53.430: E/AndroidRuntime(24999): at android.os.Looper.loop(Looper.java:137) 
04-04 14:14:53.430: E/AndroidRuntime(24999): at android.app.ActivityThread.main(ActivityThread.java:4898) 
04-04 14:14:53.430: E/AndroidRuntime(24999): at java.lang.reflect.Method.invokeNative(Native Method) 
04-04 14:14:53.430: E/AndroidRuntime(24999): at java.lang.reflect.Method.invoke(Method.java:511) 
04-04 14:14:53.430: E/AndroidRuntime(24999): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006) 
04-04 14:14:53.430: E/AndroidRuntime(24999): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773) 
04-04 14:14:53.430: E/AndroidRuntime(24999): at dalvik.system.NativeStart.main(Native Method) 
04-04 14:14:53.430: E/AndroidRuntime(24999): Caused by: java.lang.reflect.InvocationTargetException 
04-04 14:14:53.430: E/AndroidRuntime(24999): at java.lang.reflect.Method.invokeNative(Native Method) 
04-04 14:14:53.430: E/AndroidRuntime(24999): at java.lang.reflect.Method.invoke(Method.java:511) 
04-04 14:14:53.430: E/AndroidRuntime(24999): at android.view.View$1.onClick(View.java:3686) 
04-04 14:14:53.430: E/AndroidRuntime(24999): ... 11 more 
04-04 14:14:53.430: E/AndroidRuntime(24999): Caused by: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.EditText 
04-04 14:14:53.430: E/AndroidRuntime(24999): at com.example.bmi.MainActivity.calculateClickHandler(MainActivity.java:22) 
04-04 14:14:53.430: E/AndroidRuntime(24999): ... 14 more 

回答

0

你是什麼地方試圖施放一個TextView到一個EditText:

Caused by: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.EditText 

檢查你的代碼像(TextView的)可變=(EditText上)findViewById(..)..

問題出在MainActivity.java文件的第22行。

如果你分析你粘貼的堆棧跟蹤:

Caused by: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.EditText 
at com.example.bmi.MainActivity.calculateClickHandler(MainActivity.java:22) 

這點你是哪裏的問題(MainActivity.java:22)。這意味着您的MainActivity.java文件中的第22行。

更好的是,如果您找不到問題,請在此粘貼一段代碼,以便更具體地指出問題所在。您應該從onClick監聽器發佈代碼

EditText用於編輯文本,而TextView是用於顯示文本的組件。因此它們不兼容。第一個是可編輯的表單元素,而後者僅用於顯示目的。你不能投一個到另一個。

+0

謝謝Slacky。感謝您對此的幫助。線這個塊內22個落入:私人字符串interpretBMI(浮動bmiValue){ \t \t \t 如果\t(bmiValue <16){ \t \t \t返回 「嚴重不足」; \t \t} else if(bmiValue <18.5){ \t \t \t return「Underweight」; \t \t} else if(bmiValue <25){ \t \t \t return「Normal」; \t \t} else if(bmiValue <30){ \t \t \t return「Overweight」; \t \t} else { \t \t \t return「Obese」; \t \t} – gdh48k 2013-04-04 14:52:39

+0

我不知道你正在尋找正確的代碼位gdh48k,因爲@Slacky是正確的有一個小部件轉換錯誤導致它,在'onClick'方法 – 2013-04-04 14:57:51

+0

道歉的格式不好。 – gdh48k 2013-04-04 15:01:13

相關問題