Android Studio怎么实现简易计算器App
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇内容主要讲解"Android Studio怎么实现简易计算器App",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Android Studio怎么实现简
千家信息网最后更新 2026年10月31日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安全错误
数据库的锁怎样保障安全
为想互联网科技怎么样
科技互联网产品
科技企业和互联网企业
互联网科技的
互联网金融与金融科技
万易互联网科技
互联网科技小贷
远信互联网科技
伴你行互联网科技有限公司
国外互联网科技网站
深圳互联网科技怎么样
玖二柒互联网科技公司待遇
互联网系的金融科技公司
恒生互联网科技指数跳水
洛阳昕诺飞互联网科技有限公司
互联网新科技动漫ppt素材
互联网在线教育科技创业
佛山市拉法互联网科技有限公司
高科技互联网套路
互联网企业和网络科技有限公司
上海卓越科技互联网
广州互联网络科技有限公司
济南和联互联网科技有限公司
武汉健翔互联网络科技有限公司
江阴互联网智能科技产品进口
消费医药和互联网科技
天津腾达互联网科技有限公司
互联网科技企业商标注意事项
数字互联网科技有限公司
互联网科技大会大佬