2013-02-09 46 views
2

這是一個適當的鑄造?按下按鈕後,應用程序正在關閉。如果我在第二行切換評論(height = Integer),那麼它工作正常。如果你的意思是這個日誌Android - 編輯文本按int鍵後點擊問題

public void onClick(View v) 
{ 
    EditText tHeight = (EditText)findViewById(R.id.tbHeight); 
    height = Integer.parseInt(tHeight.getText().toString()); 
} 

完整的日誌:

02-09 14:41:58.941: I/dalvikvm(15417): Turning on JNI app bug workarounds for target SDK version 5... 
02-09 14:42:03.918: D/AndroidRuntime(15417): Shutting down VM 
02-09 14:42:03.918: W/dalvikvm(15417): threadid=1: thread exiting with uncaught exception (group=0x40bf11f8) 
02-09 14:42:03.918: E/AndroidRuntime(15417): FATAL EXCEPTION: main 
02-09 14:42:03.918: E/AndroidRuntime(15417): java.lang.NumberFormatException: Invalid int: "" 
02-09 14:42:03.918: E/AndroidRuntime(15417): at java.lang.Integer.invalidInt(Integer.java:138) 
02-09 14:42:03.918: E/AndroidRuntime(15417): at java.lang.Integer.parseInt(Integer.java:359) 
02-09 14:42:03.918: E/AndroidRuntime(15417): at java.lang.Integer.parseInt(Integer.java:332) 
02-09 14:42:03.918: E/AndroidRuntime(15417): at com.example.as.MainActivity$1.onClick(MainActivity.java:64) 
02-09 14:42:03.918: E/AndroidRuntime(15417): at android.view.View.performClick(View.java:3558) 
02-09 14:42:03.918: E/AndroidRuntime(15417): at android.view.View$PerformClick.run(View.java:14157) 
02-09 14:42:03.918: E/AndroidRuntime(15417): at android.os.Handler.handleCallback(Handler.java:605) 
02-09 14:42:03.918: E/AndroidRuntime(15417): at android.os.Handler.dispatchMessage(Handler.java:92) 
02-09 14:42:03.918: E/AndroidRuntime(15417): at android.os.Looper.loop(Looper.java:137) 
02-09 14:42:03.918: E/AndroidRuntime(15417): at android.app.ActivityThread.main(ActivityThread.java:4514) 
02-09 14:42:03.918: E/AndroidRuntime(15417): at java.lang.reflect.Method.invokeNative(Native Method) 
02-09 14:42:03.918: E/AndroidRuntime(15417): at java.lang.reflect.Method.invoke(Method.java:511) 
02-09 14:42:03.918: E/AndroidRuntime(15417): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790) 
02-09 14:42:03.918: E/AndroidRuntime(15417): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 
02-09 14:42:03.918: E/AndroidRuntime(15417): at dalvik.system.NativeStart.main(Native Method) 
+1

你能提供一些日誌? – 2013-02-09 13:29:23

+1

高度是一個字段還是標記爲最終? – 2013-02-09 13:30:14

回答

2

記住Integer.parseInt可以拋出NumberFormatException。這可能是正在發生的事情。

你在EditText上有號碼嗎?如果有空間,它很可能不會被解析。試試這個tHeight.getText().toString().trim().replace(" ", "");刪除任何空格。

同樣在XML佈局上,確保將輸入類型標記爲數字。

最後但並非最不重要的,請務必把try{ }catch(NumberFormatException e){ },以確保它不會崩潰

+0

我認爲應該工作,因爲我在那裏有空間。我會嘗試:)嗯沒什麼:(這不是空間,我有空值,我把一些數字,什麼都沒有。02-09 14:39:25.769:E/AndroidRuntime(15203):java.lang.NumberFormatException :Invalid int:「」 – DProphet 2013-02-09 13:39:53

+0

確定它有效,我在TextView中編寫了android:inputType =「number」,而不是EditText,而且我忘記了評論其餘的部分,所以這部分工作並停止在其他部分。投票了...我需要15代表。對不起 – DProphet 2013-02-09 13:51:57

+0

;)沒有問題。 – Budius 2013-02-09 13:52:24