Android Studio怎么实现简易计算器App
发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,本篇内容主要讲解"Android Studio怎么实现简易计算器App",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Android Studio怎么实现简
千家信息网最后更新 2025年11月06日Android Studio怎么实现简易计算器App
本篇内容主要讲解"Android Studio怎么实现简易计算器App",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Android Studio怎么实现简易计算器App"吧!
效果演示

布局文件
Java文件
import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.TextView;import android.widget.Toast;import androidx.annotation.Nullable;public class MainActivity extends Activity { private TextView tv1; private TextView tv2; private StringBuilder viewStr; private int index = 0; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_calc); tv1 = (TextView) findViewById(R.id.mini); tv2 = (TextView) findViewById(R.id.max); viewStr = new StringBuilder(); index = 0; } //加减乘除、求余简单运算方法 public String calc(StringBuilder strB) { String allS = strB.toString(); String[] asmd = {"+","-","×","÷","%"}; int x = 0; int y = 0; String result = null; for (int i = 0; i < 5; i ++) { int inde = strB.indexOf(asmd[i]); if (inde > 0) { String a = allS.split(asmd[i])[0]; String b = allS.split(asmd[i])[1]; if (i == 0) {result = String.valueOf(Integer.parseInt(a) + Integer.parseInt(b));} if (i == 1) {result = String.valueOf(Integer.parseInt(a) - Integer.parseInt(b));} if (i == 2) {result = String.valueOf(Integer.parseInt(a) * Integer.parseInt(b));} if (i == 3) { if (Integer.parseInt(b) == 0) { Toast.makeText(this,"0不能为除数",Toast.LENGTH_SHORT).show(); result = String.valueOf(Integer.parseInt(a)); }else { result = String.valueOf(Integer.parseInt(a) / Integer.parseInt(b)); } } if (i == 4) {result = String.valueOf(Integer.parseInt(a) % Integer.parseInt(b));} } } return result; } //数字按钮事件 public void number_0(View view) { viewStr.append("0"); index ++ ; tv2.setText(viewStr); } public void number_1(View view) { viewStr.append("1"); index ++ ; tv2.setText(viewStr); } public void number_2(View view) { viewStr.append("2"); index ++ ; tv2.setText(viewStr); } public void number_3(View view) { viewStr.append("3"); index ++ ; tv2.setText(viewStr); } public void number_4(View view) { viewStr.append("4"); index ++ ; tv2.setText(viewStr); } public void number_5(View view) { viewStr.append("5"); index ++ ; tv2.setText(viewStr); } public void number_6(View view) { viewStr.append("6"); index ++ ; tv2.setText(viewStr); } public void number_7(View view) { viewStr.append("7"); index ++ ; tv2.setText(viewStr); } public void number_8(View view) { viewStr.append("8"); index ++ ; tv2.setText(viewStr); } public void number_9(View view) { viewStr.append("9"); index ++ ; tv2.setText(viewStr); } //回退按钮事件 public void backsprce(View view) { if (viewStr.length() == 0) return; index = viewStr.length(); viewStr.deleteCharAt(--index); tv2.setText(viewStr); } //符号改变按钮事件 public void change(View view) { String allS = viewStr.toString(); String[] asmd = {"+","-","×","÷","%"}; int inde = 0; String a = null; //保存字符串中运算符部分 String b = null; //保存字符串中数字部分 for (int i = 0; i < 5; i ++) { inde = viewStr.indexOf(asmd[i]); if (inde != -1) { a = asmd[i]; break; } } //A 字符形 改变 A 正负值 if (inde == -1) { clearc(view); int c = - Integer.parseInt(allS); viewStr.append(String.valueOf(c)); index = String.valueOf(c).length(); tv2.setText(viewStr); } //A + 字符串形 改变 A 正负值 暂时无法实现,待后续优化 if (inde == index - 1) { return;// clearc(view);// int c = - Integer.valueOf(allS.split(a)[0]);// viewStr.append(String.valueOf(c));// index = String.valueOf(c).length();// tv2.setText(viewStr); } //A + B 字符串形 改变 B 正负值 if (inde >= 0 && inde < index) { clearc(view); b = allS.split(a)[0]; int c = - Integer.parseInt(allS.split(a)[1]); viewStr.append(b).append(a).append(String.valueOf(c)); index = String.valueOf(c).length(); tv2.setText(viewStr); } } //清空按钮事件 public void clearc(View view) { StringBuilder temp = new StringBuilder(); viewStr = temp.append(""); tv2.setText(viewStr); index = 0; } public void clearce(View view) { StringBuilder temp = new StringBuilder(); viewStr = temp.append(""); tv1.setText(""); tv2.setText(viewStr); index = 0; } //等于按钮事件 public void equal(View view) { String[] asmd = {"+","-","×","÷","%"}; StringBuilder temp = new StringBuilder(); for (int i = 0; i < 5; i ++) { int inde = viewStr.indexOf(asmd[i]); if (inde > 0 && inde != index-1) { tv1.setText(calc(viewStr)); String a = calc(viewStr); viewStr = temp.append(a); tv2.setText(viewStr); index = viewStr.length(); return; }else if (inde > 0 && inde == index-1) { viewStr.deleteCharAt(--index); tv1.setText(viewStr); tv2.setText(viewStr); } } tv1.setText(viewStr); tv2.setText(viewStr); } //加减乘除按钮事件 public void addition(View view) { if (viewStr.length() == 0) return; String[] asmd = {"+","-","×","÷","%"}; StringBuilder temp = new StringBuilder(); for (int i = 0; i < 5; i ++) { int inde = viewStr.indexOf(asmd[i]); if (inde > 0 && viewStr.charAt(index-1) >= '0' && viewStr.charAt(index-1) <= '9') { tv1.setText(calc(viewStr)); String a = calc(viewStr); viewStr = temp.append(a).append('+'); tv2.setText(viewStr); index = viewStr.length(); return; } } char a = viewStr.charAt(index-1); if (a == '+') { return; } if (a == '-' || a == '×' || a == '÷' || a == '%') { viewStr.setCharAt(index-1,'+'); }else { viewStr.append("+"); index ++ ; } tv2.setText(viewStr); } public void subtraction(View view) { if (viewStr.length() == 0) return; String[] asmd = {"+","-","×","÷","%"}; StringBuilder temp = new StringBuilder(); for (int i = 0; i < 5; i ++) { int inde = viewStr.indexOf(asmd[i]); if (inde > 0 && viewStr.charAt(index-1) >= '0' && viewStr.charAt(index-1) <= '9') { tv1.setText(calc(viewStr)); String a = calc(viewStr); viewStr = temp.append(a).append('-'); tv2.setText(viewStr); index = viewStr.length(); return; } } char a = viewStr.charAt(index-1); if (a == '-') { return; } if (a == '+' || a == '×' || a == '÷' || a == '%') { viewStr.setCharAt(index-1,'-'); }else { viewStr.append("-"); index ++ ; } tv2.setText(viewStr); } public void multiplication(View view) { if (viewStr.length() == 0) return; String[] asmd = {"+","-","×","÷","%"}; StringBuilder temp = new StringBuilder(); for (int i = 0; i < 5; i ++) { int inde = viewStr.indexOf(asmd[i]); if (inde > 0 && viewStr.charAt(index-1) >= '0' && viewStr.charAt(index-1) <= '9') { tv1.setText(calc(viewStr)); String a = calc(viewStr); viewStr = temp.append(a).append('×'); tv2.setText(viewStr); index = viewStr.length(); return; } } char a = viewStr.charAt(index-1); if (a == '×') { return; } if (a == '+' || a == '-' || a == '÷' || a == '%') { viewStr.setCharAt(index-1,'×'); }else { viewStr.append("×"); index ++ ; } tv2.setText(viewStr); } public void division(View view) { if (viewStr.length() == 0) return; String[] asmd = {"+","-","×","÷","%"}; StringBuilder temp = new StringBuilder(); for (int i = 0; i < 5; i ++) { int inde = viewStr.indexOf(asmd[i]); if (inde > 0 && viewStr.charAt(index-1) >= '0' && viewStr.charAt(index-1) <= '9') { tv1.setText(calc(viewStr)); String a = calc(viewStr); viewStr = temp.append(a).append('÷'); tv2.setText(viewStr); index = viewStr.length(); return; } } char a = viewStr.charAt(index-1); if (a == '÷') { return; } if (a == '+' || a == '-' || a == '×' || a == '%') { viewStr.setCharAt(index-1,'÷'); }else { viewStr.append("÷"); index ++ ; } tv2.setText(viewStr); } //求余按钮事件 public void surplus(View view) { if (viewStr.length() == 0) return; String[] asmd = {"+","-","×","÷","%"}; StringBuilder temp = new StringBuilder(); for (int i = 0; i < 5; i ++) { int inde = viewStr.indexOf(asmd[i]); if (inde > 0 && viewStr.charAt(index-1) >= '0' && viewStr.charAt(index-1) <= '9') { tv1.setText(calc(viewStr)); String a = calc(viewStr); viewStr = temp.append(a).append('%'); tv2.setText(viewStr); index = viewStr.length(); return; } } char a = viewStr.charAt(index-1); if (a == '%') { return; } if (a == '+' || a == '-' || a == '×' || a == '÷') { viewStr.setCharAt(index-1,'%'); }else { viewStr.append("%"); index ++ ; } tv2.setText(viewStr); } //求倒数按钮事件 public void reciprocal(View view) { if (viewStr.length() == 0) return; String[] asmd = {"+","-","×","÷","%"}; for (int i = 0; i < 5; i ++) { int inde = viewStr.indexOf(asmd[i]); if (inde > -1) { return; } } int a = Integer.parseInt(viewStr.toString().trim()); if (a == 0) { Toast.makeText(this,"0不能为除数",Toast.LENGTH_SHORT).show(); return; } clearc(view); viewStr.append(1/a); index = String.valueOf(1/a).length(); tv2.setText(viewStr); } //平方按钮事件 public void square(View view) { if (viewStr.length() == 0) return; String[] asmd = {"+","-","×","÷","%"}; for (int i = 0; i < 5; i ++) { int inde = viewStr.indexOf(asmd[i]); if (inde > -1) { return; } } int a = Integer.parseInt(viewStr.toString().trim()); clearc(view); viewStr.append(a*a); index = String.valueOf(a*a).length(); tv2.setText(viewStr); } //开平方按钮事件 public void squareroot(View view) { if (viewStr.length() == 0) return; String[] asmd = {"+","-","×","÷","%"}; for (int i = 0; i < 5; i ++) { int inde = viewStr.indexOf(asmd[i]); if (inde > -1) { return; } } int a = Integer.parseInt(viewStr.toString().trim()); clearc(view); viewStr.append((int)Math.sqrt(a)); index = String.valueOf((int)Math.sqrt(a)).length(); tv2.setText(viewStr); }}到此,相信大家对"Android Studio怎么实现简易计算器App"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
事件
按钮
简易
计算器
加减乘除
内容
字符
字符串
数字
文件
方法
部分
除数
学习
实用
更深
兴趣
实用性
实际
布局
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广播稿网络安全500字
网络技术服务费怎么做分录
校园网络安全知识资料图片
浦东新区创新软件开发采购
读取和更改sql 数据库
前后端代码包括数据库吗
服务器 png
阿里巴巴数据库视频教程
网络安全三级设备
租用国外服务器搭建网页
剑侠情缘3数据库
戴尔14代服务器搜集硬件日志
php投票的数据库格式
广工网络安全试卷
网络安全升旗仪式开场白
应届生安装和调试服务器有前途吗
怎么监控自己的云服务器
数据库技术与应用学些什么
河南凯立行软件开发
安徽交友软件开发定制
搭建云服务器后为什么别人上不去
数据库日期如何做差
古楼警长开展网络安全教育
百度网络安全负责人
分布式部署游戏服务器安全性
当前大学生网络安全
网络安全日是属于哪年
银行系统网络安全工作工资高吗
天津软件开发服务商
山西手机软件开发建设