当前位置: 首页 > 知识库问答 >
问题:

当我使用swicth语句或if语句时,我的应用程序崩溃了。我不知道为什么,请帮帮我

商和雅
2023-03-14

我想是在开关的情况下发生的,或者我的代码有任何小错误。请帮助我这里是我的代码: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"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/edText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="180sp"
        />
    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="50dp"
        android:layout_marginTop="230sp"
        android:text="1" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="170sp"
        android:layout_marginTop="230sp"
        android:text="2"/>
    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="280sp"
        android:layout_marginTop="230sp"
        android:text="3"/>
    <Button
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="50dp"
        android:layout_marginTop="280sp"
        android:text="4" />

    <Button
        android:id="@+id/button5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="170sp"
        android:layout_marginTop="280sp"
        android:text="5"/>
    <Button
        android:id="@+id/button6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="280sp"
        android:layout_marginTop="280sp"
        android:text="6"/>
    <Button
        android:id="@+id/button7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="50dp"
        android:layout_marginTop="330sp"
        android:text="7" />

    <Button
        android:id="@+id/button8"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="170sp"
        android:layout_marginTop="330sp"
        android:text="8"/>
    <Button
        android:id="@+id/button9"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="280sp"
        android:layout_marginTop="330sp"
        android:text="9"/>
    <Button
        android:id="@+id/buttonplus"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="50dp"
        android:layout_marginTop="380sp"
        android:text="+" />
    <Button
        android:id="@+id/button0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="170sp"
        android:layout_marginTop="380sp"
        android:text="0"/>
    <Button
        android:id="@+id/buttoneq"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="280sp"
        android:layout_marginTop="380sp"
        android:text="="/>
    <Button
        android:id="@+id/buttondiv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="50dp"
        android:layout_marginTop="430sp"
        android:text="/" />
    <Button
        android:id="@+id/buttonmin"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="170sp"
        android:layout_marginTop="430sp"
        android:text="-"/>
    <Button
        android:id="@+id/buttonmul"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="280sp"
        android:layout_marginTop="430sp"
        android:text="*"/>
</RelativeLayout>

MainActivity.java

package com.example.calculator;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import org.w3c.dom.Text;

public class MainActivity extends AppCompatActivity {
    int operator = 0;
    int s1 = 0,s2 = 0,add = 0,min = 0,mul = 0,div = 0;
    EditText tv;
    Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,beq,bplus,bmin,bmul,bdiv;

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

         b1 = (Button)findViewById(R.id.button);
         b2 = (Button)findViewById(R.id.button2);
         b3 = (Button)findViewById(R.id.button3);
         b4 = (Button)findViewById(R.id.button4);
         b5 = (Button)findViewById(R.id.button5);
         b6 = (Button)findViewById(R.id.button6);
         b7 = (Button)findViewById(R.id.button7);
         b8 = (Button)findViewById(R.id.button8);
         b9 = (Button)findViewById(R.id.button9);
         b0 = (Button)findViewById(R.id.button0);
         beq = (Button)findViewById(R.id.buttoneq);
         bplus = (Button)findViewById(R.id.buttonplus);
         bmin = (Button)findViewById(R.id.buttonmin);
         bmul = (Button)findViewById(R.id.buttonmul);
         bdiv = (Button)findViewById(R.id.buttondiv);
         tv = (EditText) findViewById(R.id.edText);


        b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tv.setText(tv.getText() + "1");
            }
        });
        b2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tv.setText(tv.getText() + "2");
            }
        });
        b3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tv.setText(tv.getText() + "3");
            }
        });
        b4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tv.setText(tv.getText() + "4");
            }
        });
        b5.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tv.setText(tv.getText() + "5");
            }
        });
        b6.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tv.setText(tv.getText() + "6");
            }
        });
        b7.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tv.setText(tv.getText() + "7");
            }
        });
        b8.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tv.setText(tv.getText() + "8");
            }
        });
        b9.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tv.setText(tv.getText() + "9");
            }
        });
        b0.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tv.setText( tv.getText() + "0");
            }
        });
        bplus.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                s1 = Integer.parseInt(tv.getText().toString());
                tv.setText(null);
                operator = 1;
            }
        });
        bmin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                s1 = Integer.parseInt(tv.getText().toString());
                tv.setText(null);
                operator = 2;
            }
        });
        bmul.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                s1 = Integer.parseInt(tv.getText().toString());
                tv.setText(null);
                operator = 3;
            }
        });
        bdiv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                s1 = Integer.parseInt(tv.getText().toString());
                tv.setText(null);
                operator = 4;
            }
        });


        beq.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                s2 = Integer.parseInt(tv.getText().toString());
                add = s1 + s2;
                min = s1 - s2;
                mul = s1 * s2;
                div = s1 / s2;
                switch (operator){
                    case 1:
                        tv.setText(add);
                        break;
                    case 2:
                        tv.setText(min);
                        break;
                    case 3:
                        tv.setText(mul);
                        break;
                    case 4:
                        tv.setText(div);
                        break;
                }
            }
        });
    }
}

共有1个答案

贾兴学
2023-03-14

不能在Textview上设置整数值,只能接受字符串。尝试使用下面的代码

switch (operator){
   case 1:
   tv.setText(""+add);
   break;
   case 2:
   tv.setText(""+min);
   break;
   case 3:
   tv.setText(""+mul);
   break;
   case 4:
   tv.setText(""+div);
   break;
}
 类似资料:
  • 我想使它从“游戏26”类到“游戏39”类,如果用户经历了从“游戏17”类到“游戏18”类。但如果用户没有通过,要使从“Game26”类到“Game30”类。

  • 问题内容: 我是Java的新手,正在尝试学习速记语句的概念。 我想出了下面的代码。但是,该代码将无法编译,并在(即?:)语句旁边显示错误。 有人可以告诉我为什么它不起作用吗? 对不起,如果我的问题对某些人听起来很愚蠢。我是Java新手。 在此先感谢您的帮助! 问题答案: 三元表达 是一个 表达式 ,而不是一个语句,因此不能在需要语句的地方使用。 您可以这样写: 因为这是一个声明。

  • 我正在学习亚当·简斯的合唱团教程。 数据是用这个代码块加载的 而准备就绪被定义为 我把这个序列理解为 首先-创建一个名为promises的数组,其中第一项是来自此链接的已解析json,第二项是来自该文件的id/值对的映射 第二,获取promise变量中的所有promise,如果成功,则触发函数ready,如果失败,则不执行任何操作 如果这是对的,那么相对于这样的东西有什么优势呢?我用伪代码写这个因

  • 首先,我发现了另外两条有类似问题的线索。问题在于,他们没有为字符串使用正确的等号,也没有为他们的特定问题正确设置if语句的格式。 在我的任务中,我需要创建一个名为“猪”的游戏,玩家与计算机对决,在掷骰子时先获得100分。如果玩家在一个回合中掷1,他们不会得到额外的分数。如果玩家掷两个1,那么他们将失去所有分数。我还没有对电脑的回合进行编码,只是专注于玩家。请告诉我我做错了什么。提前非常感谢。 我的

  • 我刚开始学C++,我试着做一个骰子游戏,用户输入一个1到6之间的数字,然后代码打印一个在这个范围内的随机数,如果y和z相同,你就赢了。 这是我的代码,但当我输入一个数组中没有的数字时,它的工作方式就好像它在数组中一样。 (输入是y)(数组是x)(你需要赢的数字是z) 此外,我可能会更改它,使它只读取数组,这样用户甚至可以放入骰子的边数,如果这样做顺利的话。