【发布时间】:2016-06-15 01:17:12
【问题描述】:
我创建了一个OnbuttonClick 函数并在两个按钮计算器上实现它并重置。
单击重置时重置其值,但单击计算时会生成非法状态异常。
我已经解决了这个论坛上的问题,但无法找到解决方案
package com.example.rajafarid.hc;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class FoodStorage extends MainActivity {
public int sum = 1;
public int result;
public int wheatlb = 25;
public int wheatkg = 10;
public int beanlb = 5;
public int beankg = 2;
EditText editTextNOP;
EditText editTextNOMS;
EditText editTextWheat;
EditText editTextBeans;
Button btnCalculate;
Button btnReset;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_food_storage);
editTextNOP = (EditText) findViewById(R.id.editTextNOP);
editTextNOMS = (EditText) findViewById(R.id.editTextNOMS);
btnCalculate = (Button) findViewById(R.id.btnCalculate);
btnReset = (Button) findViewById(R.id.btnReset);
}
这里是 OnButtonClick 函数
public void OnButtonClick(View v)
{
if (v.getId() == R.id.btnCalculate)
{
result = sum*wheatlb;
int result1 = sum*wheatkg;
editTextWheat.setText(result+"lb or" +wheatkg+"kg");
int bean = sum*beanlb;
int bean1=sum*beankg;
editTextBeans.setText(bean+"lb or"+beankg+"kg");
}
else if (v.getId()==R.id.btnReset)
{
editTextNOP.setText("");
editTextNOMS.setText("");
}
}
}
logcat 文件:
java.lang.IllegalStateException: 无法在 android.view.View.performClick(View.java:5156) 上执行 android.view.View$1.onClick(View.java:4222) 上的活动方法。 view.View$PerformClick.run(View.java:20755) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper .loop(Looper.java:145) at android.app.ActivityThread.main(ActivityThread.java:5832) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os .ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 引起:java.lang.reflect.InvocationTargetException 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 android.view.View$1.onClick(View.java:4217) 在 android.view.View.performClick(View.java:5156) 在 android.view.View$PerformClick.run(View.java:20755) 在 android.os.Handler.handleCallback(Handler.java:739) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:145) 在 android.app.ActivityThread.main(ActivityThread.java:5832) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 引起:java.lang.NullPointerException:尝试调用虚拟 方法 'void android.widget.EditText.setText(java.lang.CharSequence)' 在空对象引用上 在 com.example.rajafarid.hc.FoodStorage.OnButtonClick(FoodStorage.java:42) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 android.view.View$1.onClick(View.java:4217) 在 android.view.View.performClick(View.java:5156) 在 android.view.View$PerformClick.run(View.java:20755) 在 android.os.Handler.handleCallback(Handler.java:739) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:145) 在 android.app.ActivityThread.main(ActivityThread.java:5832) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
【问题讨论】:
-
editTextWheat =null很清楚
标签: android