androidstudio教程实战案例详解:简单计算器APP开发全流程指南

admin 安卓开发 26



是不是很多刚学 Android Studio 的朋友,看完基础教程后想动手做个小项目,却不知道从哪开始?想做个简单计算器 APP,结果布局按钮摆得乱七八糟,数字和运算符挤在一起;好不容易把界面弄好看了,写计算逻辑时又出错,点 “+” 号算出的结果不对;更头疼的是,输完数字点等于,APP 直接闪退,控制台报错看得一头雾水。其实啊,做计算器 APP 是新手练手的好项目,包含了布局设计、按钮事件、逻辑处理这些核心知识点,跟着步骤来一点都不难。今天兔子哥就带大家从头到尾做一个简单计算器,从界面布局到功能实现,每个坑都提前告诉你,新手跟着练,保准能做出自己的第一个实用 APP,一起往下看吧!

一、先规划:计算器 APP 该有啥功能?界面长啥样?


做项目前得先想清楚,咱们的计算器要实现哪些功能。简单计算器嘛,基本功能得有:

  • 能显示输入的数字和计算结果的屏幕(就像真实计算器的显示屏)。

  • 数字按钮:0-9 这 10 个数字,还得有个小数点。

  • 运算符按钮:加(+)、减(-)、乘(×)、除(÷)。

  • 功能按钮:清除(C)、等于(=)。


界面布局怎么设计呢?参考真实计算器的样子就行:上面是显示屏,下面是按钮,数字和运算符按网格排列,这样看着整齐,用着也顺手。兔子哥建议用 GridLayout 布局,它能像表格一样排列按钮,比手动调位置方便多了。不过话说回来,GridLayout 虽然好用,但新手容易把行列数设错,导致按钮挤在一起,后面咱们一步步调。

二、画界面:用 GridLayout 摆按钮,这几步别做错


界面是 APP 的 “脸”,得先把按钮和显示屏摆好。打开 Android Studio,新建一个 Empty Activity 项目(和之前一样,选 Java 语言),然后开始设计布局。

1. 加个显示屏,让数字有地方显示


打开 res/layout/activity_main.xml,先拖一个 TextView 当显示屏:

  • 设个 id:比如 “tvResult”,后面代码要用来显示内容。

  • 改文字大小:比如 24sp,看得清楚。

  • 文字靠右对齐:真实计算器都这样,在 Attributes 里找 “gravity” 设为 “end”。

  • 加个边框:在 res/drawable 里新建个 shape 文件,弄个灰色边框,看着更像显示屏。


2. 用 GridLayout 摆按钮,行列要算好


在显示屏下面加个 GridLayout,用来放按钮。计算器按钮一般是 4 列(方便数字和运算符排列),行数根据按钮数量来:

  • 数字按钮 1-9 占 3 行 3 列,0 和小数点占一行。

  • 运算符(+、-、×、÷)占一列,和数字按钮对齐。

  • 清除(C)和等于(=)各占一格,放合适位置。


每个按钮要设 id(比如数字 1 的 id 是 “btn1”,加号是 “btnAdd”),方便后面写代码时区分。按钮文字大小设 18sp,背景色可以弄成浅灰色,运算符按钮用橙色,这样区分明显。这里要注意,GridLayout 的 columnCount 设为 4,然后给每个按钮指定 layout_column 和 layout_row,不然按钮会堆在左上角。

三、写逻辑:让按钮能输入数字,运算符能计算


界面画好了,接下来让它 “活” 起来 —— 点击数字按钮能显示数字,点运算符能计算结果。这部分是核心,也是新手最容易出错的地方。

1. 让数字按钮能输入,显示屏能显示


首先,得让点击数字按钮时,显示屏上能看到数字。步骤是:

  • 在 MainActivity 里用 findViewById 找到显示屏和所有数字按钮。

  • 给每个数字按钮加点击事件,点击时把数字加到显示屏的文字后面。
    比如给数字 1 按钮加事件:


java

Button btn1 = findViewById(R.id.btn1);btn1.setOnClickListener(v -> {String current = tvResult.getText().toString();tvResult.setText(current + "1"); // 点击就加个“1”});


小数点按钮类似,不过要判断一下,不能加多个小数点,比如显示屏里已经有 “.” 了就不再加。

2. 运算符按钮:记录输入的运算符和第一个数字


点运算符(比如 “+”)时,要记住当前输入的数字和选的运算符,等后面点等于时计算。所以得在代码里定义变量:

  • 一个字符串变量记录运算符(比如 “operator”)。

  • 一个 double 变量记录第一个数字(比如 “firstNum”)。


点击加号按钮的事件这样写:
java

Button btnAdd = findViewById(R.id.btnAdd);btnAdd.setOnClickListener(v -> {firstNum = Double.parseDouble(tvResult.getText().toString());operator = "+";tvResult.setText(""); // 清空显示屏,准备输第二个数字});


3. 等于按钮:根据运算符算结果,显示出来


点等于按钮时,取第二个数字,根据记录的运算符计算结果。代码大概这样:
java

Button btnEqual = findViewById(R.id.btnEqual);btnEqual.setOnClickListener(v -> {double secondNum = Double.parseDouble(tvResult.getText().toString());double result = 0;switch (operator) {case "+":result = firstNum + secondNum;break;case "-":result = firstNum - secondNum;break;// 乘、除类似}tvResult.setText(String.valueOf(result)); // 显示结果});


这里要注意除法时除数不能为 0,不然会闪退,得加个判断:如果 secondNum 是 0 且运算符是 “÷”,就显示 “错误”。这样或许能减少计算错误,但实际开发中可能还有更完善的处理方式。

4. 清除按钮:一键清空,从头开始


清除按钮最简单,点击时把显示屏清空,变量也重置:
java

Button btnClear = findViewById(R.id.btnClear);btnClear.setOnClickListener(v -> {tvResult.setText("");firstNum = 0;operator = "";});


四、调 BUG:新手常犯的错,这样解决


写代码时出错很正常,计算器 APP 常见问题有这些:

1. 点击按钮没反应?


大概率是按钮 id 没对应上,比如布局里按钮 id 是 “btn1”,代码里写成 “btnOne”,这样 findViewById 就找不到按钮。解决方法:仔细检查每个按钮的 id,确保布局和代码里完全一样。

2. 计算结果不对,比如 “1+2=3.0”?


这是因为把 double 类型的结果直接转成字符串了,会带小数点和 0。可以加个判断,如果结果是整数,就去掉小数点后的 0,比如用 if (result == (int) result),显示成整数形式。

3. 输入多个运算符后出错?


比如先点 “+” 再点 “-”,这时候运算符会被覆盖,可能导致计算逻辑混乱。对于这种连续输入运算符的情况,具体机制可能需要进一步研究更完善的处理逻辑,新手可以先限制只能输入一个运算符,后面再优化。

五、运行测试:在手机或模拟器上试试,看看哪不对


界面和代码都弄好后,连接手机或启动模拟器运行。测试时要多点点,比如:

  • 输 “12+34”,看结果是不是 46。

  • 输 “5÷0”,看会不会显示 “错误” 而不是闪退。

  • 点清除按钮,看能不能清空重新输入。


如果发现按钮位置不对,回到布局文件里调 GridLayout 的行列属性;如果计算错误,在代码里加 Log 打印变量值,看看 firstNum、secondNum 和 operator 是不是正确的。

最后说几句实在的


做这个计算器 APP,你已经练了布局设计、按钮事件、逻辑处理这些核心技能,别看功能简单,里面藏着很多 Android 开发的基础知识点。刚开始写代码时,算错结果、按钮没反应都很正常,改几次就熟了。
兔子哥建议新手做完后别停,试试加个功能,比如让计算器能计算连续运算(1+2×3 这种),或者加个删除单个数字的按钮。慢慢积累小项目的经验,后面做复杂 APP 就不会慌了。开发 APP 就像搭积木,每个小功能做好了,拼起来就是一个完整的项目,动手多练比啥都重要,你也能越来越厉害!

标签: 乱七八糟 从头到尾

发布评论 0条评论)

  • Refresh code

还木有评论哦,快来抢沙发吧~