这是我的原始代码:
final EditText t1 = (EditText)findViewById(R.id.editText1);
int a = Integer.parseInt(t1.getText().toString());
现在使用此代码,当我在模拟器上运行时,我会强制关闭。
所以我把它塞进了这个
String s = t1.getText().toString();
一切正常,但当我改为:
String s = t1.getText().toString();
int a = Integer.parseInt(s);
然后再次强制关闭。
编辑:
我在按钮点击监听器中有这样的代码:
button.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
int a = 0;
int b = 0;
try
{
a = Integer.parseInt(t1.getText().toString());
b = Integer.parseInt(t2.getText().toString());
}
catch(NumberFormatException e)
{
alert.show();
}
}
});
但是当我拿出它时,它确实正确地捕获了异常。给我一点时间,生病得到logcat。
07-26 07:54:14.360: ERROR/AndroidRuntime(711): FATAL EXCEPTION: main
07-26 07:54:14.360: ERROR/AndroidRuntime(711): android.content.res.Resources$NotFoundException: String resource ID #0x7
07-26 07:54:14.360: ERROR/AndroidRuntime(711): at android.content.res.Resources.getText(Resources.java:201)
07-26 07:54:14.360: ERROR/AndroidRuntime(711): at android.widget.TextView.setText(TextView.java:2857)
07-26 07:54:14.360: ERROR/AndroidRuntime(711): at com.testing.test2.Test2Activity$1.onClick(Test2Activity.java:47)
07-26 07:54:14.360: ERROR/AndroidRuntime(711): at android.view.View.performClick(View.java:2485)
07-26 07:54:14.360: ERROR/AndroidRuntime(711): at android.view.View$PerformClick.run(View.java:9080)
07-26 07:54:14.360: ERROR/AndroidRuntime(711): at android.os.Handler.handleCallback(Handler.java:587)
07-26 07:54:14.360: ERROR/AndroidRuntime(711): at android.os.Handler.dispatchMessage(Handler.java:92)
07-26 07:54:14.360: ERROR/AndroidRuntime(711): at android.os.Looper.loop(Looper.java:123)
07-26 07:54:14.360: ERROR/AndroidRuntime(711): at android.app.ActivityThread.main(ActivityThread.java:3683)
07-26 07:54:14.360: ERROR/AndroidRuntime(711): at java.lang.reflect.Method.invokeNative(Native Method)
07-26 07:54:14.360: ERROR/AndroidRuntime(711): at java.lang.reflect.Method.invoke(Method.java:507)
07-26 07:54:14.360: ERROR/AndroidRuntime(711): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
07-26 07:54:14.360: ERROR/AndroidRuntime(711): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
07-26 07:54:14.360: ERROR/AndroidRuntime(711): at dalvik.system.NativeStart.main(Native Method)
07-26 07:54:14.430: WARN/ActivityManager(68): Force finishing activity com.testing.test2/.Test2Activity
07-26 07:54:14.940: WARN/ActivityManager(68): Activity pause timeout for HistoryRecord{405e8368 com.testing.test2/.Test2Activity}
07-26 07:54:16.349: INFO/Process(711): Sending signal. PID: 711 SIG: 9
07-26 07:54:16.389: INFO/ActivityManager(68): Process com.testing.test2 (pid 711) has died.
07-26 07:54:16.399: INFO/WindowManager(68): WIN DEATH: Window{407013e0 com.testing.test2/com.testing.test2.Test2Activity paused=false}
07-26 07:54:16.689: WARN/InputManagerService(68): Got RemoteException sending setActive(false) notification to pid 711 uid 10035
07-26 07:54:21.599: DEBUG/dalvikvm(258): GC_EXPLICIT freed 6K, 54% free 2597K/5639K, external 410K/517K, paused 76ms
07-26 07:54:26.650: DEBUG/dalvikvm(303): GC_EXPLICIT freed 6K, 54% free 2544K/5511K, external 410K/517K, paused 100ms
07-26 07:54:31.640: DEBUG/dalvikvm(315): GC_EXPLICIT freed 1K, 54% free 2538K/5511K, external 410K/517K, paused 72ms
答案 0 :(得分:1)
这意味着用户未在文本字段中输入数字。 但这不是您在堆栈跟踪中显示的错误。它表示您上次生成的R.java文件与引用资源ID的代码不匹配。完全重新编译您的应用以修复它。
答案 1 :(得分:1)
关闭力量的原因:
您日志中的 android.content.res.Resources$NotFoundException: String resource ID #0x7
表示您有一些未知的String
资源......
请检查string.xml
文件夹中的values
文件。
答案 2 :(得分:0)
检查xml文件是否正确输入EditText id作为editText1
答案 3 :(得分:-1)
你应该只给出整数范围的数字,NumberFormatException将出现在字符或特殊字符中,