Android 简单计算器 APK 开发教程:加减乘除运算
Android 简单计算器 APK 开发教程:加减乘除运算
本教程将指导你如何使用 Android Studio 开发一个简单的计算器 APK,支持加减乘除四则运算。
1. 创建 Android 项目
在 Android Studio 中创建一个新的项目,选择“Empty Compose Activity”,并设置项目名称和包名。
2. 设计布局文件
在 activity_main.xml 文件中设计计算器的布局。我们将使用 LinearLayout 和 GridLayout 来排列按钮和结果显示区域。
<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 简单计算器开发!
原文地址: https://www.cveoy.top/t/topic/mDhY 著作权归作者所有。请勿转载和采集!