Android 简单计算器 APK 开发教程:加减乘除运算

本教程将指导你如何使用 Android Studio 开发一个简单的计算器 APK,支持加减乘除四则运算。

1. 创建 Android 项目

在 Android Studio 中创建一个新的项目,选择“Empty Compose Activity”,并设置项目名称和包名。

2. 设计布局文件

activity_main.xml 文件中设计计算器的布局。我们将使用 LinearLayoutGridLayout 来排列按钮和结果显示区域。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp">

    <TextView
        android:id="@+id/result_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="24sp"
        android:gravity="end"
        android:text="0"/>

    <GridLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:columnCount="4"
        android:rowCount="5"
        android:orientation="horizontal">

        <Button
            android:id="@+id/button_clear"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:text="C"/>

        <Button
            android:id="@+id/button_divide"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:text="/"/>

        <Button
            android:id="@+id/button_multiply"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:text="*"/>

        <Button
            android:id="@+id/button_minus"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:text="-"/>

        <Button
            android:id="@+id/button_7"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:text="7"/>

        <Button
            android:id="@+id/button_8"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:text="8"/>

        <Button
            android:id="@+id/button_9"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:text="9"/>

        <Button
            android:id="@+id/button_plus"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:text="+"/>

        <Button
            android:id="@+id/button_4"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:text="4"/>

        <Button
            android:id="@+id/button_5"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:text="5"/>

        <Button
            android:id="@+id/button_6"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:text="6"/>

        <Button
            android:id="@+id/button_equals"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="2"
            android:text="="/>

        <Button
            android:id="@+id/button_1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:text="1"/>

        <Button
            android:id="@+id/button_2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:text="2"/>

        <Button
            android:id="@+id/button_3"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:text="3"/>

        <Button
            android:id="@+id/button_0"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="2"
            android:layout_rowWeight="1"
            android:text="0"/>

    </GridLayout>

</LinearLayout>

3. 编写 Java 代码

MainActivity.java 文件中编写计算器的逻辑代码。

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 {

    private TextView resultView;
    private String currentNumber = "";
    private String operation = "";
    private double result = 0.0;

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

        resultView = findViewById(R.id.result_view);

        Button button0 = findViewById(R.id.button_0);
        Button button1 = findViewById(R.id.button_1);
        Button button2 = findViewById(R.id.button_2);
        Button button3 = findViewById(R.id.button_3);
        Button button4 = findViewById(R.id.button_4);
        Button button5 = findViewById(R.id.button_5);
        Button button6 = findViewById(R.id.button_6);
        Button button7 = findViewById(R.id.button_7);
        Button button8 = findViewById(R.id.button_8);
        Button button9 = findViewById(R.id.button_9);
        Button buttonPlus = findViewById(R.id.button_plus);
        Button buttonMinus = findViewById(R.id.button_minus);
        Button buttonMultiply = findViewById(R.id.button_multiply);
        Button buttonDivide = findViewById(R.id.button_divide);
        Button buttonEquals = findViewById(R.id.button_equals);
        Button buttonClear = findViewById(R.id.button_clear);

        button0.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                numberPressed("0");
            }
        });

        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                numberPressed("1");
            }
        });

        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                numberPressed("2");
            }
        });

        button3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                numberPressed("3");
            }
        });

        button4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                numberPressed("4");
            }
        });

        button5.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                numberPressed("5");
            }
        });

        button6.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                numberPressed("6");
            }
        });

        button7.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                numberPressed("7");
            }
        });

        button8.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                numberPressed("8");
            }
        });

        button9.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                numberPressed("9");
            }
        });

        buttonPlus.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                operationPressed("+");
            }
        });

        buttonMinus.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                operationPressed("-");
            }
        });

        buttonMultiply.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                operationPressed("*");
            }
        });

        buttonDivide.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                operationPressed("/");
            }
        });

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

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

    private void numberPressed(String number) {
        currentNumber += number;
        resultView.setText(currentNumber);
    }

    private void operationPressed(String operation) {
        if (this.operation.equals("")) {
            result = Double.parseDouble(currentNumber);
        } else {
            performOperation();
        }

        this.operation = operation;
        currentNumber = "";
    }

    private void equalsPressed() {
        performOperation();
        operation = "";
    }

    private void clearPressed() {
        result = 0.0;
        currentNumber = "";
        operation = "";
        resultView.setText("0");
    }

    private void performOperation() {
        if (operation.equals("+")) {
            result += Double.parseDouble(currentNumber);
        } else if (operation.equals("-")) {
            result -= Double.parseDouble(currentNumber);
        } else if (operation.equals("*")) {
            result *= Double.parseDouble(currentNumber);
        } else if (operation.equals("/")) {
            result /= Double.parseDouble(currentNumber);
        }

        currentNumber = "";
        resultView.setText(Double.toString(result));
    }
}

4. 运行测试

运行你的 Android 项目,你就可以使用这个简单的计算器进行加减乘除运算啦!

5. 优化与扩展

你可以根据需要对这个简单的计算器进行优化和扩展,例如:

  • 添加更多功能,例如百分比计算、平方根计算、三角函数计算等。
  • 优化用户界面,使计算器更加美观易用。
  • 添加错误处理,例如处理除数为零的情况。
  • 使用其他 UI 库,例如 Jetpack Compose,来构建计算器界面。

希望本教程可以帮助你快速上手 Android 简单计算器开发!

Android 简单计算器 APK 开发教程:加减乘除运算

原文地址: https://www.cveoy.top/t/topic/mDhY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录