📜  为 Android 设备创建计算器(1)

📅  最后修改于: 2023-12-03 15:06:15.731000             🧑  作者: Mango

为 Android 设备创建计算器

在这篇文章中,我们将介绍如何为 Android 设备创建一个简单的计算器应用程序。我们将使用 Java 语言和 Android Studio 开发环境。

项目概述

我们将创建一个基本的计算器应用程序,它将支持加、减、乘和除四种基本运算。我们还将为应用程序添加一个 UI,使用户能够直观地输入和编辑数字和运算符。

开始

我们假定你已经熟悉 Android 开发和使用 Android Studio 进行开发。如果你是一个新手,我们建议你先学习 Android 基础知识和 Android Studio 的基础知识。

首先,创建一个新的 Android 工程并在主界面上添加一个 TextView 组件用于显示结果。接下来,我们将添加其他的 UI 组件,包括数字按钮、运算符按钮和一个清除按钮。

UI 设计

我们的应用程序将包括以下 UI 组件:

  • 一个 TextView 用于显示结果
  • 一个 LinearLayout 用于放置数字按钮和运算符按钮
  • 数字按钮(0-9)
  • 运算符按钮:加、减、乘、除、等号和清除

在 main.xml 中添加以下代码:

<LinearLayout
    android:id="@+id/buttons_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_marginTop="8dp">

    <TextView
        android:id="@+id/result_textview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="26sp"
        android:textAlignment="textEnd"
        android:padding="16dp"
        android:background="@android:color/darker_gray"
        android:textColor="@android:color/white"
        android:text="0"/>

</LinearLayout>
实现逻辑

我们需要为按钮添加 OnClickListener,以响应用户的输入操作。我们还需创建一个实体类,用于存储和操作计算操作。

public class Calculator {
    private double mOperand1;
    private double mOperand2;
    private String mOperator;

    public Calculator() {
        mOperand1 = 0;
        mOperand2 = 0;
        mOperator = "";
    }

    public void setOperand1(double operand) {
        mOperand1 = operand;
    }

    public void setOperand2(double operand) {
        mOperand2 = operand;
    }

    public void setOperator(String operator) {
        mOperator = operator;
    }

    public double getResult() {
        double result = 0;
        switch (mOperator) {
            case "+":
                result = mOperand1 + mOperand2;
                break;
            case "-":
                result = mOperand1 - mOperand2;
                break;
            case "*":
                result = mOperand1 * mOperand2;
                break;
            case "/":
                result = mOperand1 / mOperand2;
                break;
        }
        return result;
    }

    public void clear() {
        mOperand1 = 0;
        mOperand2 = 0;
        mOperator = "";
    }
}

接下来,我们需要实现 buttonOne,buttonTwo 等按钮的单击事件,用 TextView 显示计算器的输入和输出结果。

public class MainActivity extends AppCompatActivity {

    private Calculator mCalculator;
    private boolean mIsOperand2 = false;
    private double mLastValue;
    private String mLastOperator = "";

    private TextView mResultTextView;

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

        mCalculator = new Calculator();

        mResultTextView = findViewById(R.id.result_textview);

        findViewById(R.id.button_one).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                setOperand("1");
            }
        });

        findViewById(R.id.button_two).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                setOperand("2");
            }
        });

        //...

        findViewById(R.id.button_divide).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                setOperator("/");
            }
        });

        findViewById(R.id.button_clear).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mCalculator.clear();
                mResultTextView.setText("0");
                mIsOperand2 = false;
                mLastOperator = "";
            }
        });

        findViewById(R.id.button_equal).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (mIsOperand2) {
                    mCalculator.setOperand2(mLastValue);
                    double result = mCalculator.getResult();
                    mResultTextView.setText(String.valueOf(result));
                    mCalculator.clear();
                    mCalculator.setOperand1(result);
                    mIsOperand2 = false;
                    mLastOperator = "";
                }
            }
        });
    }

    private void setOperand(String operand) {
        if (!mIsOperand2) {
            mCalculator.setOperand1(Double.parseDouble(operand));
            mResultTextView.setText(operand);
            mIsOperand2 = true;
        } else {
            mLastValue = Double.parseDouble(operand);
            mResultTextView.append(operand);
        }
    }

    private void setOperator(String operator) {
        if (mIsOperand2 && !mLastOperator.equals("")) {
            mCalculator.setOperand2(mLastValue);
            double result = mCalculator.getResult();
            mCalculator.clear();
            mCalculator.setOperand1(result);
            mResultTextView.setText(String.valueOf(result));
        } else {
            mCalculator.setOperand1(Double.parseDouble(mResultTextView.getText().toString()));
        }
        mLastOperator = operator;
        mIsOperand2 = false;
    }
}
总结

在本文中,我们学习了如何使用 Android Studio 创建一个基本的计算器应用程序。我们设计并实现了一个简单的 UI 和一个计算器类,这个计算器类可以执行加、减、乘和除四种基本运算。掌握这些知识后,你可以根据自己的需要进行修改和扩展。