在数学测验游戏 - TextView 中按下“答案”按钮时,没有输入值会使 adnroid 应用程序崩溃

问题描述 投票:0回答:1

我是制作 Android 应用程序的新手。我正在制作一个数学测验游戏,一切正常,除了在没有任何输入值的情况下按下答案按钮时应用程序崩溃。我正在 TextView 中制作它。我在这里找到了很多答案,但它们都与 EditText 有关,主要与计算器应用程序有关。这是我的代码,请告诉我我做错了什么。

我用过

if (Ans.getText().toString().equals("")){
            Toast.makeText(this, "Enter Answer", Toast.LENGTH_SHORT).show();
        }

但它不起作用,应用程序仍然崩溃。

import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import java.util.Random;

public class Level0 extends AppCompatActivity {

    TextView Num1,Num2,Ans,Result;

    @SuppressLint("MissingInflatedId")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_level0);

        Num1 = findViewById(R.id.Num1);
        Num2 = findViewById(R.id.Num2);
        Ans = findViewById(R.id.Ans);
        Result = findViewById(R.id.Result);


        run_reset();
    }

    void run_reset(){
        Random myRandom = new Random();

        int num1 = myRandom.nextInt(101);
        int num2 = myRandom.nextInt(101);

        Num1.setText(""+num1);
        Num2.setText(""+num2);
        Ans.setText("");
        Result.setText("");
    }

    void printAns(String a){
        String text = Ans.getText().toString();
        Ans.setText(text+a);
    }

    public void one(View view) { printAns("1"); }

    public void two(View view) {
        printAns("2");
    }

    public void three(View view) {
        printAns("3");
    }

    public void four(View view) {
        printAns("4");
    }

    public void five(View view) {
        printAns("5");
    }

    public void six(View view) {
        printAns("6");
    }

    public void seven(View view) {
        printAns("7");
    }

    public void eight(View view) {
        printAns("8");
    }

    public void nine(View view) {
        printAns("9");
    }

    public void zero(View view) {
        printAns("0");
    }

    public void clear(View view) {
        if (view.getId()==R.id.clear);
        Ans.setText("");
    }

    public void submit(View view) {
        int num1 = Integer.parseInt(Num1.getText().toString());
        int num2 = Integer.parseInt(Num2.getText().toString());
        int ans = num1 + num2;

        int get_user_ans = Integer.parseInt(Ans.getText().toString());

        if (Ans.getText().toString().equals("")){
            Toast.makeText(this, "Enter Answer", Toast.LENGTH_SHORT).show();
        }

        else if (ans == get_user_ans) {
            Result.setText("CORRECT!!");
            Result.setTextColor(Color.GREEN);
            startActivity(new Intent(this,Level1.class));
        }

        else {
            Result.setText("INCORRECT!!");
            Result.setTextColor(Color.RED);
        }
    }



}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background33"
    tools:context=".Level0">


    <LinearLayout
        android:id="@+id/Top"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:gravity="center">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="SOLVE IT"
            android:textSize="30sp"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Enter The Correct Answer"
            android:paddingBottom="15dp"/>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="center"
            android:background="#ECB899">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="50"
                android:textSize="25sp"
                android:paddingRight="10dp"
                android:id="@+id/Num1"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="+"
                android:textSize="25sp"
                android:paddingRight="10dp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="75"
                android:textSize="25sp"
                android:id="@+id/Num2"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="="
                android:textSize="25sp"
                android:paddingLeft="10dp"
                android:paddingRight="10dp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="?"
                android:textSize="25sp"/>
        </LinearLayout>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ANSWER:"
            android:textSize="20sp"
            android:paddingTop="20dp"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="30"
            android:textSize="60sp"
            android:id="@+id/Ans"/>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="center"
            android:background="#FFECB899">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="CORRECT!!"
                android:textSize="30sp"
                android:id="@+id/Result"/>

        </LinearLayout>
    </LinearLayout>

    <LinearLayout
        android:id="@+id/Earnings"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/Top"
        android:orientation="vertical"
        android:layout_marginStart="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="40dp"
        android:layout_marginEnd="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginBottom="10dp">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:textAlignment="textStart"
            android:textSize="30sp"
            android:text="\n YOUR BALANCE: 0Rs"
            />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/Buttons"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="10dp"
        android:layout_alignParentBottom="true">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:weightSum="3">
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:backgroundTint="#F44336"
                android:textStyle="bold"
                android:text="1"
                android:textSize="20sp"
                android:layout_weight="1"
                android:onClick="one"/>
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:backgroundTint="#F44336"
                android:textStyle="bold"
                android:text="2"
                android:textSize="20sp"
                android:layout_weight="1"
                android:onClick="two"/>
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:backgroundTint="#F44336"
                android:textStyle="bold"
                android:text="3"
                android:textSize="20sp"
                android:layout_weight="1"
                android:onClick="three"/>
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:weightSum="3">
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:backgroundTint="#F44336"
                android:textStyle="bold"
                android:text="4"
                android:textSize="20sp"
                android:layout_weight="1"
                android:onClick="four"/>
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:backgroundTint="#F44336"
                android:textStyle="bold"
                android:text="5"
                android:textSize="20sp"
                android:layout_weight="1"
                android:onClick="five"/>
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:backgroundTint="#F44336"
                android:textStyle="bold"
                android:text="6"
                android:textSize="20sp"
                android:layout_weight="1"
                android:onClick="six"/>
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:weightSum="3">
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:backgroundTint="#F44336"
                android:textStyle="bold"
                android:text="7"
                android:textSize="20sp"
                android:layout_weight="1"
                android:onClick="seven"/>
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:backgroundTint="#F44336"
                android:textStyle="bold"
                android:text="8"
                android:textSize="20sp"
                android:layout_weight="1"
                android:onClick="eight"/>
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:backgroundTint="#F44336"
                android:textStyle="bold"
                android:text="9"
                android:textSize="20sp"
                android:layout_weight="1"
                android:onClick="nine"/>
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:weightSum="3">
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:backgroundTint="#F44336"
                android:textStyle="bold"
                android:text="CLR"
                android:id="@+id/clear"
                android:textSize="20sp"
                android:layout_weight="1"
                android:onClick="clear"/>
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:backgroundTint="#F44336"
                android:textStyle="bold"
                android:text="0"
                android:textSize="20sp"
                android:layout_weight="1"
                android:onClick="zero"/>
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:backgroundTint="#F44336"
                android:textStyle="bold"
                android:text="ANS"
                android:textSize="20sp"
                android:layout_weight="1"
                android:onClick="submit"/>
        </LinearLayout>

    </LinearLayout>

</RelativeLayout>``
java android math input textview
1个回答
0
投票

空输入无法传递给数字:

Integer.parseInt(Num1.getText().toString());

应该是这样的:

Integer.parseInt("".equals(Num1.getText().toString()) ? 0 : Num1.getText().toString());
© www.soinside.com 2019 - 2024. All rights reserved.