-1

I am new to android developing and made a simple calculator project. However, my app keeps crashing and I have no idea why

Java Codes:

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);
}}

Stack Trace:

E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.zhiwen.calculator, PID: 2027 java.lang.IllegalStateException: Could not execute method for android:onClick at 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) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) at 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)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)  Caused by: java.lang.NumberFormatException: For input string: "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) at com.example.zhiwen.calculator.MainActivity.ClickMeButton(MainActivity.java:33) at java.lang.reflect.Method.invoke(Native Method)  at 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)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)

Jeff
  • 15
  • 6
  • 1
    Look at the stack trace to determine the cause of the crash. https://stackoverflow.com/questions/23353173 – Mike M. May 24 '17 at 02:48
  • I have added in the stack trace. Could you explain to me the reason for the crash? – Jeff May 24 '17 at 02:55

2 Answers2

5

You want to change

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

to

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

same for second

Scary Wombat
  • 44,617
  • 6
  • 35
  • 64
0

you are getting the value from editText in wrong way no1 = Integer.parseInt(first.toString()); no2 = Integer.parseInt(second.toString()); answer = no1 + no2; textview3.setText("Answer: " + answer);

it should be first.getText().toString();

Durgesh Kumar
  • 935
  • 10
  • 17