用 Android Studio 从零开发一个多功能计算器应用
简介
计算器是每个学习 Android 开发者必经的经典项目之一。本篇文章将带你创建一个功能更强大的计算器应用,支持基本的加减乘除运算、带小数点的输入以及更多操作符功能。通过这个项目,你将全面掌握 Android 的布局设计、事件处理和逻辑实现技巧。
一、功能设计
基础功能
- 支持基本运算:加、减、乘、除。
- 支持小数点输入:可以输入和计算小数。
- 实时显示结果:输入数字和符号后立即显示计算结果。
进阶功能
- 清除功能:重置当前计算状态。
- 百分比运算:支持百分比的简单操作。
- 正负号切换:支持正负数输入。
二、项目创建与布局设计
1. 创建新项目
- 打开 Android Studio,点击 New Project。
- 选择 Empty Activity 模板,命名项目为 AdvancedCalculator。
- 选择编程语言为 Java 或 Kotlin。
2. 布局设计
打开 res/layout/activity_main.xml 文件,设计用户界面。
完整布局代码:
样式:
0dp wrap_content center 1 18sp 16dp
三、实现功能逻辑
1. 声明变量
在 MainActivity.java 中,定义需要的变量:
public class MainActivity extends AppCompatActivity { private TextView tvDisplay; private double firstOperand = 0; private double secondOperand = 0; private String operator = ""; private boolean isNewInput = true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tvDisplay = findViewById(R.id.tvDisplay); setupListeners(); } }
2. 设置按钮监听事件
为每个按钮绑定点击事件:
private void setupListeners() { findViewById(R.id.btn0).setOnClickListener(v -> appendNumber("0")); findViewById(R.id.btn1).setOnClickListener(v -> appendNumber("1")); findViewById(R.id.btn2).setOnClickListener(v -> appendNumber("2")); findViewById(R.id.btn3).setOnClickListener(v -> appendNumber("3")); findViewById(R.id.btn4).setOnClickListener(v -> appendNumber("4")); findViewById(R.id.btn5).setOnClickListener(v -> appendNumber("5")); findViewById(R.id.btn6).setOnClickListener(v -> appendNumber("6")); findViewById(R.id.btn7).setOnClickListener(v -> appendNumber("7")); findViewById(R.id.btn8).setOnClickListener(v -> appendNumber("8")); findViewById(R.id.btn9).setOnClickListener(v -> appendNumber("9")); findViewById(R.id.btnAdd).setOnClickListener(v -> setOperator("+")); findViewById(R.id.btnSubtract).setOnClickListener(v -> setOperator("-")); findViewById(R.id.btnMultiply).setOnClickListener(v -> setOperator("*")); findViewById(R.id.btnDivide).setOnClickListener(v -> setOperator("/")); findViewById(R.id.btnDot).setOnClickListener(v -> appendNumber(".")); findViewById(R.id.btnEquals).setOnClickListener(v -> calculate()); findViewById(R.id.btnClear).setOnClickListener(v -> clearAll()); findViewById(R.id.btnSign).setOnClickListener(v -> toggleSign()); findViewById(R.id.btnPercent).setOnClickListener(v -> applyPercent()); }
3. 数字和操作符逻辑
数字输入:
private void appendNumber(String number) { if (isNewInput) { tvDisplay.setText(""); isNewInput = false; } tvDisplay.append(number); }
设置操作符:
private void setOperator(String op) { firstOperand = Double.parseDouble(tvDisplay.getText().toString()); operator = op; isNewInput = true; }
4. 计算结果
private void calculate() { secondOperand = Double.parseDouble(tvDisplay.getText().toString()); double result = 0; switch (operator) { case "+": result = firstOperand + secondOperand; break; case "-": result = firstOperand - secondOperand; break; case "*": result = firstOperand * secondOperand; break; case "/": if (secondOperand != 0) { result = firstOperand / secondOperand; } else { tvDisplay.setText("Error"); return; } break; } tvDisplay.setText(String.valueOf(result)); isNewInput = true; }
5. 清除功能
private void clearAll() { firstOperand = 0; secondOperand = 0; operator = ""; tvDisplay.setText("0"); isNewInput = true; }
6. 其他功能
百分比:
private void applyPercent() { double current = Double.parseDouble(tvDisplay.getText().toString()); tvDisplay.setText(String.valueOf(current / 100)); isNewInput = true; }
**正负号
切换:**
private void toggleSign() { double current = Double.parseDouble(tvDisplay.getText().toString()); tvDisplay.setText(String.valueOf(-current)); }
四、运行与测试
-
运行项目
点击 Android Studio 的 Run 按钮,在模拟器或真实设备上测试应用。
-
测试功能
验证加减乘除、百分比、正负切换等功能是否正确。
五、总结
通过本文的项目开发,你学习了以下内容:
- 使用 Android Studio 创建用户界面。
- 在 Android 中处理按钮点击事件。
- 实现计算器的核心逻辑,包括实时计算和错误处理。
扩展这个项目,你可以添加更多高级功能,如历史记录、科学计算模式等。继续尝试,相信你会开发出更复杂、更实用的应用!
-
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。