Android Studio怎么实现简易计算器App
发表于:2025-02-22 作者:千家信息网编辑
千家信息网最后更新 2025年02月22日,本篇内容主要讲解"Android Studio怎么实现简易计算器App",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Android Studio怎么实现简
千家信息网最后更新 2025年02月22日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安全错误
数据库的锁怎样保障安全
PowerEdge 服务器
软件开发原型开发模型是
下载pubmed数据库
网络安全舆情检查记录
神舟通用是基于哪个数据库
sip服务器没有注册
软件开发需要学哪门语言
河南力航网络技术有限公司
tamu cs 网络安全
云服务器哪里买
二手服务器
为全文数据库的是
小米 用谷歌服务器
多益数据库
戴尔服务器怎么看系统盘
我的世界给管理员的服务器
软件开发人员所需技能
日本国际网络安全的动议
苏州运营软件开发咨询报价
网络安全报告2019
答题类软件开发参数
高速网络技术是什么
根据司法厅网络安全要求
江西省网络安全宣传
网络安全产品行业
怎么查看服务器的端口是关闭的
服务器管理口都有什么功能
网络安全遵循标准
正式环境数据库怎么迁移
网络安全模块名词解释