2013-02-09 47 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