这是合适的演员吗?按下按钮后,应用程序将关闭。如果我在第二行(height = Integer
)上切换注释,则可以正常工作。
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)
最佳答案
请记住,Integer.parseInt
可以抛出NumberFormatException
。那可能正在发生。EditText
上有数字吗?如果有空间,它也可能无法解析。尝试使用此tHeight.getText().toString().trim().replace(" ", "");
删除所有空格。
同样在XML布局上,确保将输入类型标记为数字。
最后但并非最不重要的一点,请确保放入try{ }catch(NumberFormatException e){ }
以确保它不会崩溃
关于android - Android-在按下按钮单击问题后将EditText转换为int,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14788646/