在Java中显示Android计算器的最后一个运算符

123abc:

我正在用Java为Android编写计算器,在程序完成之前,还有最后一件事要做。

例如,如果我按以下顺序按下:5,+,-,/,*,5,则操作将为“ 5 * 5”。实际上,当我这样做时,它仅是第一个运算符。我该如何解决?我做不完,这让我发疯。如果有人可以帮助我,我将不胜感激。

这是我的代码,我希望它很干净,您将能够理解它:

    package com.example.calcapp_training;

    import androidx.appcompat.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.ImageView;
    import android.widget.TextView;

    public class MainActivity extends AppCompatActivity {
        Button btnMinus, btnDiv, btnMult, btnPlus, btnDel, btnEqual, btnPoint, btn0, btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9;
        TextView input, result;
        TextView error;
        ImageView image;
        double mValueOne, mValueTwo;
        int Calculation;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final TextView errorMessage = findViewById(R.id.error);
        final TextView welcomeMessage = findViewById(R.id.welcome);

        btn0 = (Button) findViewById(R.id.btn0);
        btn1 = (Button) findViewById(R.id.btn1);
        btn2 = (Button) findViewById(R.id.btn2);
        btn3 = (Button) findViewById(R.id.btn3);
        btn4 = (Button) findViewById(R.id.btn4);
        btn5 = (Button) findViewById(R.id.btn5);
        btn6 = (Button) findViewById(R.id.btn6);
        btn7 = (Button) findViewById(R.id.btn7);
        btn8 = (Button) findViewById(R.id.btn8);
        btn9 = (Button) findViewById(R.id.btn9);
        btnPlus = (Button) findViewById(R.id.btnPlus );
        btnMinus = (Button) findViewById(R.id.btnMinus );
        btnMult = (Button) findViewById(R.id.btnMult );
        btnDiv = (Button) findViewById(R.id.btnDiv );
        btnDel = (Button) findViewById(R.id.btnDel);
        btnEqual = (Button) findViewById(R.id.btnEqual);
        btnPoint = (Button) findViewById(R.id.btnPoint);
        input = (TextView) findViewById(R.id.input);
        result = (TextView) findViewById(R.id.result);
        error = (TextView) findViewById(R.id.error);
        image = (ImageView) findViewById(R.id.image);

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

                welcomeMessage.setVisibility(View.INVISIBLE);
                result.setText(result.getText() + "1");

            }
        });

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

                welcomeMessage.setVisibility(View.INVISIBLE);
                result.setText(result.getText() + "2");

            }
        });

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

                welcomeMessage.setVisibility(View.INVISIBLE);
                result.setText(result.getText() + "3");

            }
        });

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

                welcomeMessage.setVisibility(View.INVISIBLE);
                result.setText(result.getText() + "4");

            }
        });

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

                welcomeMessage.setVisibility(View.INVISIBLE);
                result.setText(result.getText() + "5");

            }
        });

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

                welcomeMessage.setVisibility(View.INVISIBLE);
                result.setText(result.getText() + "6");

            }
        });

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

                welcomeMessage.setVisibility(View.INVISIBLE);
                result.setText(result.getText() + "7");

            }
        });

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

                welcomeMessage.setVisibility(View.INVISIBLE);
                result.setText(result.getText() + "8");

            }
        });

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

                welcomeMessage.setVisibility(View.INVISIBLE);
                result.setText(result.getText() + "9");

            }
        });

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

                welcomeMessage.setVisibility(View.INVISIBLE);
                result.setText(result.getText() + "0");

            }
        });

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

                welcomeMessage.setVisibility(View.INVISIBLE);
                result.setText("");
                input.setText("");

            }
        });

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

                welcomeMessage.setVisibility(View.INVISIBLE);
                result.setText(result.getText() + ".");

            }
        });

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

                if( result.getText().toString().equals("") != true ) {

                    mValueOne=Double.parseDouble(result.getText()+"");
                    Calculation = 1;
                    result.setText(null);

                }
            }
        });

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

                if( result.getText().toString().equals("") != true ) {

                    mValueOne=Double.parseDouble(result.getText()+"");
                    Calculation = 2;
                    result.setText(null);

                }
            }
        });

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

                if( result.getText().toString().equals("") != true ) {

                    mValueOne=Double.parseDouble(result.getText()+"");
                    Calculation = 3;
                    result.setText(null);

                }
            }
        });

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

                if( result.getText().toString().equals("") != true ) {

                    mValueOne=Double.parseDouble(result.getText()+"");
                    Calculation = 4;
                    result.setText(null);

                }
            }
        });

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

                mValueTwo = Double.parseDouble(result.getText() + "");
                if (Calculation == 1) {

                    result.setText(mValueOne + mValueTwo + "");
                    Calculation = 1;

                }

                else if (Calculation == 2) {

                    result.setText(mValueOne - mValueTwo + "");
                    Calculation = 2;

                }

                else if (Calculation == 3) {

                    result.setText(mValueOne * mValueTwo + "");
                    Calculation = 3;

                }

                else if (Calculation == 4) {

                    double a = Math.round(mValueOne / mValueTwo);
                    result.setText(a + "" );

                    if(mValueTwo == 0) {

                        errorMessage.setVisibility(View.VISIBLE);
                        result.setText(mValueOne / mValueTwo + "");
                        Calculation = 4;

                    } else {

                        errorMessage.setVisibility(View.INVISIBLE);

                    }

                    Calculation = 4;

                }
            }
        });
    }
}
Dinesh:

将所有操作按钮单击Calculation外部条件,如下所示:

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

        if( result.getText().toString().equals("") != true ) {

            mValueOne=Double.parseDouble(result.getText()+"");

            result.setText(null);

        }
       Calculation = 1;
    }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

输入第一个数字,然后在计算器中输入运算符

用C++做一个简单的计算器时如何选择运算符?

JavaScript 计算器项目中的运算符函数默认为第一个 if 语句

防止运算符在计算器中连续显示多次

为什么在计算后缀最后一个运算符时会出错?

Javascript:单击运算符后使计算器显示结果

计算器不处理两个运算符方程

这两个运算符计算器有什么问题?

仅获得猫鼬$ in运算符中的最后一个字段

使用 C 的多运算符计算器

kotlin 中计算器的一元和二元减运算符

在简单计算器中验证数学运算符

Ruby / Python中的计算器程序,无需使用任何内置运算符

Java(入门):创建一个显示计算器功能的菜单

我正在尝试创建一个计算器,我想让我的代码当我点击算术运算符时,我希望它们只运行一次

RX去抖运算符的第一个和最后一个

Java GUI计算器:创建一个小程序,对数字进行简单的加减运算

一个结构中多个点的运算符

在一个函数中重载多个运算符

在python中“注册”一个重载的运算符

计算器,在选择运算符后键入第二个变量时清除窗口

如何使用散布运算符在多维数组中循环获取最后一个节点的捕获

为什么Java的%运算符会给出与我的计算器不同的负负分红结果?

Java计算器会为二进制运算符'-'抛出-bad操作数类型-

为什么我的计算器程序不能计算运算符 / aka。分工合理吗?

空合并运算符,最后一个操作数为空

我应该使用shareReplay作为最后一个运算符吗?

Spread运算符仅在for循环中添加最后一个值

C ++在最后一个循环中排除了循环运算符