【发布时间】:2014-07-02 03:37:18
【问题描述】:
我一直在尝试使用点击监听器上的按钮添加数字并在屏幕上显示... 代码sn-p如下:
add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stubi
String value = input.getText().toString();
int FValue = Integer.parseInt(value);
iCounter+=FValue;
display.setText("Total : "+iCounter);
}
});
当我尝试运行此代码时,我的应用程序崩溃了......为什么??? 任何帮助表示赞赏
阅读了一些回复并进行了实验,我将代码更改为
add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
//String value = input.getText().toString();
int FValue = Integer.parseInt("15");
iCounter+=FValue;
display.setText("Total : "+iCounter);
}
});
现在每次单击按钮时都会完美地添加 15,所以我猜罪魁祸首是这段代码: 字符串值 = input.getText().toString();
好的... 我运行的代码:
add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
try{
String value = input.getText().toString().trim();
if(!value.equals(""))
{FValue = Integer.parseInt(value);}
iCounter+=FValue;
display.setText("Total : " + iCounter);
}catch(Exception e)
{ e.printStackTrace();}
}
});
我得到的错误: 04-28 15:26:27.820: W/System.err(1319): java.lang.NullPointerException 04-28 15:26:27.820: W/System.err(1319): 在 com.honeycomb.helloworld.MainActivity$1.onClick(MainActivity.java:33) 04-28 15:26:27.820: W/System.err(1319): 在 android.view.View.performClick(View.java:4424) 04-28 15:26:27.840: W/System.err(1319): 在 android.view.View$PerformClick.run(View.java:18383) 04-28 15:26:27.840: W/System.err(1319): 在 android.os.Handler.handleCallback(Handler.java:733) 04-28 15:26:27.840: W/System.err(1319): 在 android.os.Handler.dispatchMessage(Handler.java:95) 04-28 15:26:27.840: W/System.err(1319): 在 android.os.Looper.loop(Looper.java:137) 04-28 15:26:27.840: W/System.err(1319): 在 android.app.ActivityThread.main(ActivityThread.java:4998) 04-28 15:26:27.840: W/System.err(1319): 在 java.lang.reflect.Method.invokeNative(Native Method) 04-28 15:26:27.880: W/System.err(1319): 在 java.lang.reflect.Method.invoke(Method.java:515) 04-28 15:26:27.880: W/System.err(1319): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777) 04-28 15:26:27.880: W/System.err(1319): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593) 04-28 15:26:27.880: W/System.err(1319): 在 dalvik.system.NativeStart.main(Native Method) 04-28 15:26:41.790: W/System.err(1319): java.lang.NullPointerException 04-28 15:26:41.790: W/System.err(1319): 在 com.honeycomb.helloworld.MainActivity$1.onClick(MainActivity.java:33) 04-28 15:26:41.790: W/System.err(1319): 在 android.view.View.performClick(View.java:4424) 04-28 15:26:41.800: W/System.err(1319): 在 android.view.View$PerformClick.run(View.java:18383) 04-28 15:26:41.800: W/System.err(1319): 在 android.os.Handler.handleCallback(Handler.java:733) 04-28 15:26:41.800: W/System.err(1319): 在 android.os.Handler.dispatchMessage(Handler.java:95) 04-28 15:26:41.800: W/System.err(1319): 在 android.os.Looper.loop(Looper.java:137) 04-28 15:26:41.810: W/System.err(1319): 在 android.app.ActivityThread.main(ActivityThread.java:4998) 04-28 15:26:41.840: W/System.err(1319): 在 java.lang.reflect.Method.invokeNative(Native Method) 04-28 15:26:41.840: W/System.err(1319): 在 java.lang.reflect.Method.invoke(Method.java:515) 04-28 15:26:41.840: W/System.err(1319): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777) 04-28 15:26:41.850: W/System.err(1319): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593) 04-28 15:26:41.850: W/System.err(1319): at dalvik.system.NativeStart.main(Native Method)
哎呀!!! 不小心忘记放了
input = (EditText) findViewById(R.id.etInput);
这导致了所有这些错误。 无论如何...第一天与android。 可能会更糟。 感谢大家的帮助。
【问题讨论】:
-
你应该添加日志输出。
-
它是如何以及何时崩溃的?应用程序启动时立即启动,还是仅在您单击按钮时启动?什么是 logcat 错误消息?只需将其从控制台复制并粘贴到此处即可。我要检查的一件事是 value 实际上可以解析为 int 类型。
-
当我点击按钮添加
-
好了,在debug模式下执行代码,在int FValue处下断点,运行代码。单击添加后检查 value 中包含的内容。如果您在使用记录器、解释消息或使用调试器时遇到问题,那么您可能需要先在 Eclipse 中进行一些基本培训。
-
我已经上传了日志输出
标签: android nullpointerexception