有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java计算器:如何通过单击“相等”按钮并输入两个以上的数字来重复计算

我几乎是安卓新手,正在尝试编写计算器代码。 差不多完成了,但我想试试其他的方法

  • 当我重复单击“相等”按钮时,我想重复上次输入的计算。例如3+5=8,如果我再次点击exe按钮,它将是13(3+5+5) 等等(18,23,…)
  • 此外,我输入两个以上的数字也有问题。例如,当我输入(4+5+6),然后单击“相等”时,答案将显示为11,并仅计算输入的最后两个数字。我希望它显示前两个数字的结果,然后得到其他数字。示例:对于(2+3*4-5/)->;输出将等于(5->;20->;15)

这是我的密码;如果有人能帮忙,我将不胜感激!:)谢谢

    package com.example.sony.calculator;

公共类MainActivity扩展了AppCompatActivity{

Float firstNumber,secondNumber,result;
Float   thirdNumber;
TextView    display;
Button  one,two,three,four,five,six,seven,eight,nine,zero,exe,clear,multiply,divide,sum,minus;
boolean isSum,isMinus,isMultiply,isDivide,isEqual;


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


     display = (TextView) findViewById(R.id.khali);
     one = (Button) findViewById(R.id.adade1);
     two = (Button) findViewById(R.id.adade2);
    three = (Button) findViewById(R.id.adade3);
     four = (Button) findViewById(R.id.adade4);
     five = (Button) findViewById(R.id.adade5);
     six = (Button) findViewById(R.id.adade6);
     seven = (Button) findViewById(R.id.adade7);
     eight = (Button) findViewById(R.id.adade8);
     nine = (Button) findViewById(R.id.adade9);
     zero = (Button) findViewById(R.id.adade0);
     multiply = (Button) findViewById(R.id.zarb);
    divide = (Button) findViewById(R.id.taghsim);
     sum = (Button) findViewById(R.id.jam);
     minus = (Button) findViewById(R.id.menha);
     exe = (Button) findViewById(R.id.mosavi);
     clear = (Button) findViewById(R.id.pak);
    final Button[] operators = new Button[5];
    operators[0] = multiply;
    operators[1] = divide;
    operators[2] = sum;
    operators[3] = minus;
    operators[4] = exe;

    final Button[] numbers = new Button[10];
    numbers[0] = zero;
    numbers[1] = one;
    numbers[2] = two;
    numbers[3] = three;
    numbers[4] = four;
    numbers[5] = five;
    numbers[6] = six;
    numbers[7] = seven;
    numbers[8] = eight;
    numbers[9] = nine;


    for (int a = 0; a < 10; a++) {
        final int finalA = a;
        numbers[a].setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                display.setText(display.getText().toString() + String.valueOf(finalA));

            }
        });
    }
    clear.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            display.setText("");

        }
    });
    sum.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            if (display.getText() == "") {
                display.setText("");
                return;
            }
            else{

                 firstNumber = parseFloat(display.getText().toString());
                isSum=true;

                display.setText("");

                return;
            }
        }
    });
    minus.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (display.getText()==""){
                display.setText("");
            }else {
                firstNumber = parseFloat(display.getText().toString());
                isMinus = true;
                display.setText("");
            }
        }
    });
    multiply.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (display.getText()==""){

                Toast Error1=Toast.makeText(MainActivity.this,"Error;Please enter right format",Toast.LENGTH_SHORT);
                Error1.show();
            }else {
                firstNumber = parseFloat(display.getText().toString());
                isMultiply = true;

                display.setText("");
            }
        }
    });
    divide.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (display.getText() == "") {

                Toast Error1 = Toast.makeText(MainActivity.this, "Error;Please enter right format", Toast.LENGTH_SHORT);
                Error1.show();
            } else {
                firstNumber = parseFloat(display.getText().toString());
                isDivide = true;
                display.setText("");

            }
        }
    });

    exe.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            isEqual=true;

            if (display.getText() == "") {
                display.setText("");

            }
            else {

                secondNumber = parseFloat(display.getText().toString());
                if (isSum == true) {


                    result = firstNumber + secondNumber ;

                    display.setText(String.valueOf(result));


                   isSum=false;


                    return;


                }
                if (isMinus == true) {
                    result = firstNumber - secondNumber;
                    display.setText(String.valueOf(result));

                    isMinus = false;
                    return;
                }
                if (isDivide == true) {
                    result = firstNumber / secondNumber;
                    display.setText(String.valueOf(result));
                    isDivide = false;
                    return;

                }
                if (isMultiply == true) {
                    result = firstNumber * secondNumber;
                    display.setText(String.valueOf(result));

                    isMultiply=false;
                    return;
                }
            }
        }
    });


    }


    }

共 (0) 个答案