Edi calculator #10

Closed
opened 2025-08-09 17:12:54 +00:00 by fergalmoran · 0 comments
Owner

Originally created by @Marilolio on 7/22/2024

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

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private TextView displayTextView;
private Button buttonZero, buttonOne, buttonTwo, buttonThree, buttonFour, buttonFive, buttonSix, buttonSeven, buttonEight, buttonNine;
private Button buttonPlus, buttonMinus, buttonMultiply, buttonDivide, buttonEquals, buttonClear;

private String currentNumber = "";
private double result = 0.0;
private String operator = "";

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

    displayTextView = findViewById(R.id.displayTextView);

    buttonZero = findViewById(R.id.buttonZero);
    buttonOne = findViewById(R.id.buttonOne);
    buttonTwo = findViewById(R.id.buttonTwo);
    buttonThree = findViewById(R.id.buttonThree);
    buttonFour = findViewById(R.id.buttonFour);
    buttonFive = findViewById(R.id.buttonFive);
    buttonSix = findViewById(R.id.buttonSix);
    buttonSeven = findViewById(R.id.buttonSeven);
    buttonEight = findViewById(R.id.buttonEight);
    buttonNine = findViewById(R.id.buttonNine);

    buttonPlus = findViewById(R.id.buttonPlus);
    buttonMinus = findViewById(R.id.buttonMinus);
    buttonMultiply = findViewById(R.id.buttonMultiply);
    buttonDivide = findViewById(R.id.buttonDivide);
    buttonEquals = findViewById(R.id.buttonEquals);
    buttonClear = findViewById(R.id.buttonClear);

    buttonZero.setOnClickListener(this);
    buttonOne.setOnClickListener(this);
    buttonTwo.setOnClickListener(this);
    buttonThree.setOnClickListener(this);
    buttonFour.setOnClickListener(this);
    buttonFive.setOnClickListener(this);
    buttonSix.setOnClickListener(this);
    buttonSeven.setOnClickListener(this);
    buttonEight.setOnClickListener(this);
    buttonNine.setOnClickListener(this);

    buttonPlus.setOnClickListener(this);
    buttonMinus.setOnClickListener(this);
    buttonMultiply.setOnClickListener(this);
    buttonDivide.setOnClickListener(this);
    buttonEquals.setOnClickListener(this);
    buttonClear.setOnClickListener(this);
}

@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.buttonZero:
            appendNumber("0");
            break;
        case R.id.buttonOne:
            appendNumber("1");
            break;
        case R.id.buttonTwo:
            appendNumber("2");
            break;
        case R.id.buttonThree:
            appendNumber("3");
            break;
        case R.id.buttonFour:
            appendNumber("4");
            break;
        case R.id.buttonFive:
            appendNumber("5");
            break;
        case R.id.buttonSix:
            appendNumber("6");
            break;
        case R.id.buttonSeven:
            appendNumber("7");
            break;
        case R.id.buttonEight:
            appendNumber("8");
            break;
        case R.id.buttonNine:
            appendNumber("9");
            break;
        case R.id.buttonPlus:
            setOperator("+");
            break;
        case R.id.buttonMinus:
            setOperator("-");
            break;
        case R.id.buttonMultiply:
            setOperator("*");
            break;
        case R.id.buttonDivide:
            setOperator("/");
            break;
        case R.id.buttonEquals:
            calculateResult();
            break;
        case R.id.buttonClear:
            clearDisplay();
            break;
    }
}

private void appendNumber(String number) {
    currentNumber += number;
    displayTextView.setText(currentNumber);
}

private void setOperator(String op) {
    if (!currentNumber.equals("")) {
        operator = op;
        result = Double.parseDouble(currentNumber);
        currentNumber = "";
        displayTextView.setText(op);
    }
}

private void calculateResult() {
    if (!operator.equals("") && !currentNumber.equals("")) {
        double secondNumber = Double.parseDouble(currentNumber);
        switch (operator) {
            case "+":
                result += secondNumber;
                break;
            case "-":
                result -= secondNumber;
                break;
            case "*":
                result *= secondNumber;
                break;
            case "/":
                if (secondNumber != 0) {
                    result /= secondNumber;
                } else {
                    displayTextView.setText("Error");
                    return;
                }
                break;
        }
        displayTextView.setText(String.valueOf(result));
        currentNumber = "";
        operator = "";
    }
}

private void clearDisplay() {
    currentNumber = "";
    result = 0.0;
    operator = "";
    displayTextView.setText("");
}

}

*Originally created by @Marilolio on 7/22/2024* import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private TextView displayTextView; private Button buttonZero, buttonOne, buttonTwo, buttonThree, buttonFour, buttonFive, buttonSix, buttonSeven, buttonEight, buttonNine; private Button buttonPlus, buttonMinus, buttonMultiply, buttonDivide, buttonEquals, buttonClear; private String currentNumber = ""; private double result = 0.0; private String operator = ""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); displayTextView = findViewById(R.id.displayTextView); buttonZero = findViewById(R.id.buttonZero); buttonOne = findViewById(R.id.buttonOne); buttonTwo = findViewById(R.id.buttonTwo); buttonThree = findViewById(R.id.buttonThree); buttonFour = findViewById(R.id.buttonFour); buttonFive = findViewById(R.id.buttonFive); buttonSix = findViewById(R.id.buttonSix); buttonSeven = findViewById(R.id.buttonSeven); buttonEight = findViewById(R.id.buttonEight); buttonNine = findViewById(R.id.buttonNine); buttonPlus = findViewById(R.id.buttonPlus); buttonMinus = findViewById(R.id.buttonMinus); buttonMultiply = findViewById(R.id.buttonMultiply); buttonDivide = findViewById(R.id.buttonDivide); buttonEquals = findViewById(R.id.buttonEquals); buttonClear = findViewById(R.id.buttonClear); buttonZero.setOnClickListener(this); buttonOne.setOnClickListener(this); buttonTwo.setOnClickListener(this); buttonThree.setOnClickListener(this); buttonFour.setOnClickListener(this); buttonFive.setOnClickListener(this); buttonSix.setOnClickListener(this); buttonSeven.setOnClickListener(this); buttonEight.setOnClickListener(this); buttonNine.setOnClickListener(this); buttonPlus.setOnClickListener(this); buttonMinus.setOnClickListener(this); buttonMultiply.setOnClickListener(this); buttonDivide.setOnClickListener(this); buttonEquals.setOnClickListener(this); buttonClear.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.buttonZero: appendNumber("0"); break; case R.id.buttonOne: appendNumber("1"); break; case R.id.buttonTwo: appendNumber("2"); break; case R.id.buttonThree: appendNumber("3"); break; case R.id.buttonFour: appendNumber("4"); break; case R.id.buttonFive: appendNumber("5"); break; case R.id.buttonSix: appendNumber("6"); break; case R.id.buttonSeven: appendNumber("7"); break; case R.id.buttonEight: appendNumber("8"); break; case R.id.buttonNine: appendNumber("9"); break; case R.id.buttonPlus: setOperator("+"); break; case R.id.buttonMinus: setOperator("-"); break; case R.id.buttonMultiply: setOperator("*"); break; case R.id.buttonDivide: setOperator("/"); break; case R.id.buttonEquals: calculateResult(); break; case R.id.buttonClear: clearDisplay(); break; } } private void appendNumber(String number) { currentNumber += number; displayTextView.setText(currentNumber); } private void setOperator(String op) { if (!currentNumber.equals("")) { operator = op; result = Double.parseDouble(currentNumber); currentNumber = ""; displayTextView.setText(op); } } private void calculateResult() { if (!operator.equals("") && !currentNumber.equals("")) { double secondNumber = Double.parseDouble(currentNumber); switch (operator) { case "+": result += secondNumber; break; case "-": result -= secondNumber; break; case "*": result *= secondNumber; break; case "/": if (secondNumber != 0) { result /= secondNumber; } else { displayTextView.setText("Error"); return; } break; } displayTextView.setText(String.valueOf(result)); currentNumber = ""; operator = ""; } } private void clearDisplay() { currentNumber = ""; result = 0.0; operator = ""; displayTextView.setText(""); } }
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/android-dev-ext#10
No description provided.