java - 为什么我的应用程序在实现按钮时崩溃?

标签 java android crash

这是代码...每当我在手机上启动该应用程序时,它就会崩溃。我是 Android 编程新手,所以请帮助我。经过一些测试后,发现问题是当我将值分配给 Value1 和 Value2 时(只是猜测)。请帮我一下。提前致谢。 MainActivity.java

package com.example.android.add;


import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    EditText num1;
    EditText num2;
    Button add;
    TextView ans;
    int Value1;
    int Value2;
    int result;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        num1 = (EditText) findViewById(R.id.et1);
        num2 = (EditText) findViewById(R.id.et2);
        Value1 = Integer.parseInt(num1.getText().toString());
        Value2 = Integer.parseInt(num2.getText().toString());
        add = (Button) findViewById(R.id.addBtn);
        ans = (TextView) findViewById(R.id.tv);

        add.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                result = Value1 + Value2;

                ans.setText(""+result);


            }

        });
    }

} 

和activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.android.add.MainActivity">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="20dp"
        android:hint="Number 1"
        android:textSize="40dp"
        android:id="@+id/et1"
        android:inputType="number"/>

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="20dp"
        android:layout_below="@+id/et1"
        android:hint="Number 2"
        android:textSize="40dp"
        android:id="@+id/et2"
        android:inputType="number"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/addBtn"
        android:layout_below="@+id/et2"
        android:text="Add"
        android:layout_marginLeft="80dp" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Your Answer"
        android:textSize="40dp"
        android:layout_margin="40dp"
        android:layout_below="@+id/addBtn"
        android:id="@+id/tv"/>

</RelativeLayout>

最佳答案

您在插入之前获取值,当用户单击添加按钮并在 onClickListner 中获取 value1 和 value2 时,您必须获取值

照此更改

package com.example.android.add;


import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
EditText num1;
EditText num2;
Button add;
TextView ans;
int Value1;
int Value2;
int result;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    num1 = (EditText) findViewById(R.id.et1);
    num2 = (EditText) findViewById(R.id.et2);

    add = (Button) findViewById(R.id.addBtn);
    ans = (TextView) findViewById(R.id.tv);

    add.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Value1 = Integer.parseInt(num1.getText().toString());
            Value2 = Integer.parseInt(num2.getText().toString());

            result = Value1 + Value2;

            ans.setText(""+result);


        }

    });
   }
 }

关于java - 为什么我的应用程序在实现按钮时崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44601049/

相关文章:

Android 中的 Java 定时器

java - Android API 23 - HttpClient 4.X 重新打包

Objective-C 线程安全代码以防止崩溃

android - 退出应用程序时,为什么在用Kotlin/rxJava编写的Android应用程序中出现android.os.TransactionTooLargeException? (onExit/onPause)?

android - 如何自动在apk文件名中包含git分支名称

iphone - 使用 Organizer 上传到 iTunesConnect 时崩溃

java - java 中的泛型 set<E> 应该添加函数接受哪些参数?

java - 图像的深度为零是什么意思?

java - 在小程序上显示旋转的风扇

android - 在android应用程序中的两个类之间传递字符串数组