安卓简单计算器崩溃



我是安卓开发的新手,做了一个简单的计算器项目。但是,我的应用程序不断崩溃,我不知道为什么

爪哇代码:

package com.example.zhiwen.calculator;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
Button plus,minus,times,divide;
TextView textview3;
EditText first, second;
double no1 = 0, no2 = 0;
double answer = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
plus = (Button) findViewById(R.id.plus);
minus = (Button) findViewById(R.id.minus);
times = (Button) findViewById(R.id.times);
divide = (Button) findViewById(R.id.divide);
textview3 = (TextView) findViewById(R.id.textview3);
first = (EditText) findViewById(R.id.editText);
second = (EditText) findViewById(R.id.editText2);
}
public void ClickMeButton(View view){
no1 = Integer.parseInt(first.toString());
no2 = Integer.parseInt(second.toString());
answer = no1 + no2;
textview3.setText("Answer: " + answer);
}
public void ClickMeButton2(View view) {
no1 = Integer.parseInt(first.toString());
no2 = Integer.parseInt(second.toString());
answer = no1 - no2;
textview3.setText("Answer: " + answer);
}
public void ClickMeButton3(View view) {
no1 = Integer.parseInt(first.toString());
no2 = Integer.parseInt(second.toString());
answer = no1 * no2;
textview3.setText("Answer: " + answer);
}
public void ClickMeButton4(View view) {
no1 = Integer.parseInt(first.toString());
no2 = Integer.parseInt(second.toString());
answer = no1 / no2;
textview3.setText("Answer: " + answer);
}}

堆栈跟踪:

E/Android运行时:致命异常:main 流程:例如,智文计算器,PID:2027 java.lang.IllegalStateException: 无法执行方法 安卓:点击 在 android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293) at android.view.View.performClick(View.java:6207) at android.widget.TextView.performClick(TextView.java:11094) at android.view.View$PerformClick.run(View.java:23639) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6688) at java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358) 由: java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) 在 android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) at android.view.View.performClick(View.java:6207) at android.widget.TextView.performClick(TextView.java:11094) at android.view.View$PerformClick.run(View.java:23639) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6688) at java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358) 原因:java.lang.NumberFormatException:对于输入字符串: "android.support.v7.widget.AppCompatEditText{271441f VFED..CL. ........0,57-441,193 #7f0b0063 app:id/editText}" at java.lang.Integer.parseInt(Integer.java:521) at java.lang.Integer.parseInt(Integer.java:556) 在 com.example.zhiwen.calculator.MainActivity.ClickMeButton(MainActivity.java:33) at java.lang.reflect.Method.invoke(Native Method) 在 android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) at android.view.View.performClick(View.java:6207) at android.widget.TextView.performClick(TextView.java:11094) at android.view.View$PerformClick.run(View.java:23639) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6688) at java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)

你想改变

no1 = Integer.parseInt(first.toString());

no1 = Integer.parseInt(first.getText ().toString());

second也一样

您以错误的方式从editText获取值no1 = Integer.parseInt(first.toString()); no2 = Integer.parseInt(second.toString()); answer = no1 + no2; textview3.setText("Answer: " + answer);

应该是first.getText().toString();

最新更新