我是制作 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>``
空输入无法传递给数字:
Integer.parseInt(Num1.getText().toString());
应该是这样的:
Integer.parseInt("".equals(Num1.getText().toString()) ? 0 : Num1.getText().toString());