android studio大作业-简易计算器实现
android studio大作业-简易计算器实现
先看效果图
基本功能:加,减,乘,除
核心代码实现
public class MainActivity extends AppCompatActivity implements View.OnClickListener {Button btn_0, btn_1, btn_2, btn_3, btn_4, btn_5, btn_6, btn_7, btn_8, btn_9, btn_pt;Button btn_mul, btn_div, btn_add, btn_sub;Button btn_clr, btn_del, btn_eq;EditText et_input;boolean clr_flag;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//初始化控件btn_0 = (Button) findViewById(R.id.btn_0);btn_1 = (Button) findViewById(R.id.btn_1);btn_2 = (Button) findViewById(R.id.btn_2);btn_3 = (Button) findViewById(R.id.btn_3);btn_4 = (Button) findViewById(R.id.btn_4);btn_5 = (Button) findViewById(R.id.btn_5);btn_6 = (Button) findViewById(R.id.btn_6);btn_7 = (Button) findViewById(R.id.btn_7);btn_8 = (Button) findViewById(R.id.btn_8);btn_9 = (Button) findViewById(R.id.btn_9);btn_pt = (Button) findViewById(R.id.btn_pt);btn_add = (Button) findViewById(R.id.btn_add);btn_sub = (Button) findViewById(R.id.btn_sub);btn_mul = (Button) findViewById(R.id.btn_mul);btn_div = (Button) findViewById(R.id.btn_div);btn_clr = (Button) findViewById(R.id.btn_clr);btn_del = (Button) findViewById(R.id.btn_del);btn_eq = (Button) findViewById(R.id.btn_eq);et_input = (EditText) findViewById(R.id.et_input);//给按钮设置的点击事件btn_0.setOnClickListener(this);btn_1.setOnClickListener(this);btn_2.setOnClickListener(this);btn_3.setOnClickListener(this);btn_4.setOnClickListener(this);btn_5.setOnClickListener(this);btn_6.setOnClickListener(this);btn_7.setOnClickListener(this);btn_8.setOnClickListener(this);btn_9.setOnClickListener(this);btn_pt.setOnClickListener(this);btn_add.setOnClickListener(this);btn_sub.setOnClickListener(this);btn_mul.setOnClickListener(this);btn_div.setOnClickListener(this);btn_clr.setOnClickListener(this);btn_del.setOnClickListener(this);btn_eq.setOnClickListener(this);}@Overridepublic void onClick(View v) {String str = et_input.getText().toString();switch (v.getId()) {case R.id.btn_0:case R.id.btn_1:case R.id.btn_2:case R.id.btn_3:case R.id.btn_4:case R.id.btn_5:case R.id.btn_6:case R.id.btn_7:case R.id.btn_8:case R.id.btn_9:case R.id.btn_pt:if (clr_flag) {clr_flag = false;str = "";et_input.setText("");}et_input.setText(str + ((Button) v).getText());break;case R.id.btn_add:case R.id.btn_sub:case R.id.btn_mul:case R.id.btn_div:if (clr_flag) {clr_flag = false;str = "";et_input.setText("");}if (str.contains("+") || str.contains("-") || str.contains("×") || str.contains("÷")) {str = str.substring(0, str.indexOf(" "));}et_input.setText(str + " " + ((Button) v).getText() + " ");break;case R.id.btn_clr:if (clr_flag)clr_flag = false;str = "";et_input.setText("");break;case R.id.btn_del: //判断是否为空,然后在进行删除if (clr_flag) {clr_flag = false;str = "";et_input.setText("");} else if (str != null && !str.equals("")) {et_input.setText(str.substring(0, str.length() - 1));}break;case R.id.btn_eq: //单独运算最后结果getResult();//调用下面的方法break;}}private void getResult() {String exp = et_input.getText().toString();if (exp == null || exp.equals("")) return;//因为没有运算符所以不用运算if (!exp.contains(" ")) {return;}if (clr_flag) {clr_flag = false;return;}clr_flag = true;//截取运算符前面的字符串String s1 = exp.substring(0, exp.indexOf(" "));//截取的运算符String op = exp.substring(exp.indexOf(" ") + 1, exp.indexOf(" ") + 2);//截取运算符后面的字符串String s2 = exp.substring(exp.indexOf(" ") + 3);double cnt = 0;if (!s1.equals("") && !s2.equals("")) {double d1 = Double.parseDouble(s1);double d2 = Double.parseDouble(s2);if (op.equals("+")) {cnt = d1 + d2;}if (op.equals("-")) {cnt = d1 - d2;}if (op.equals("×")) {cnt = d1 * d2;}if (op.equals("÷")) {if (d2 == 0) cnt = 0;else cnt = d1 / d2;}if (!s1.contains(".") && !s2.contains(".") && !op.equals("÷")) {int res = (int) cnt;et_input.setText(res + "");} else {et_input.setText(cnt + "");}}//如果s1是空 s2不是空 就执行下一步else if (!s1.equals("") && s2.equals("")) {double d1 = Double.parseDouble(s1);if (op.equals("+")) {cnt = d1;}if (op.equals("-")) {cnt = d1;}if (op.equals("×")) {cnt = 0;}if (op.equals("÷")) {cnt = 0;}if (!s1.contains(".")) {int res = (int) cnt;et_input.setText(res + "");} else {et_input.setText(cnt + "");}}//如果s1是空 s2不是空 就执行下一步else if (s1.equals("") && !s2.equals("")) {double d2 = Double.parseDouble(s2);if (op.equals("+")) {cnt = d2;}if (op.equals("-")) {cnt = 0 - d2;}if (op.equals("×")) {cnt = 0;}if (op.equals("÷")) {cnt = 0;}if (!s2.contains(".")) {int res = (int) cnt;et_input.setText(res + "");} else {et_input.setText(cnt + "");}} else {et_input.setText("");}}
}
android studio大作业-简易计算器实现相关推荐
- android studio 大作业
安卓studio 大作业 报告马源安卓studio 大作业 报告马源安卓studio 大作业 报告马源安卓studio 大作业 报告马源安卓studio 大作业 报告马源安卓stu ...
- android仿QQ列表实现 android studio大作业,android studio课程设计
1. 效果图 2.功能介绍:登录,注册,好友列表 3.核心代码 /*** 登录页面*/ public class LoginActivity extends BaseActivity {private ...
- 使用Android Studio实现简单的计算器(已亲自实验通过)
使用Android Studio实现简单的计算器(已亲自实验通过) 实验内容 用多个Activity实现分别实现加.减.乘.除的计算器,具体包括:通过一个启动Activity布置4个按钮,每个按钮分别 ...
- 安卓(Android studio)编写一个计算器,可以连续加减乘除,可加小数点,不包含括号以及加减乘除优先算法。
安卓(Android studio)编写一个计算器,可以累加,可加小数点,不包含括号以及加减乘除优先算法. 首先需要在res目录下的layout文件下创建一个xml文件进行界面的布局设计,接着在Jav ...
- 使用Android Studio做一个简易进制转换计算器
Android Studio简易进制转换计算器 1.问题描述. 设计并实现一个数制转换器,能够对输入的任- -进制类型的数值转换为指定的数制类型的数值.必须实现的数制类型有二进制.八进制.十进制和十六 ...
- android studio线性布局做计算器,Android studio设计简易计算器
本文实例为大家分享了Android studio设计简易计算器的具体代码,供大家参考,具体内容如下 效果显示: 第一步,简单的界面布局 xmlns:tools="http://schemas ...
- Android Studio小作业:科学计算器
背景 上一章,我们完成基于Xamarin.Android的简单计算器 今天突发奇想,做一个科学计算器 支持标准四则运算.括号.小数点.三角函数.log.ln.倒数.阶乘.幂.算数平方根.百分数 开发环 ...
- github android 计算器,Android studio实现简单的计算器
本文实例为大家分享了Android studio实现简单计算器的具体代码,供大家参考,具体内容如下 需求分析及概要设计 目的 开发一个简单的计算器App,使之能够完成加减乘除混合运算 工具及环境 使用 ...
- Android期末大作业、移动应用开发期末大作业(教练预约APP)
移动应用开发期末大作业(教练预约APP) 运动健身APP 用户:小型健身房和健身者 功能:注册登录,预约教练,发布讨论,删除讨论 页面展示: 欢迎页面:(三秒自动跳转到主页面) 首页: 我的: 登录注 ...
最新文章
- 转:[大数据竞赛]夺冠感言:走进业务,提升对世界的认知能力
- 神州数码使用telnet方式管理交换机
- Mybatis中模糊查询的各种写法(转)
- 《3ds Max疯狂设计学院》——1.5节怎样才能学好3ds Max,你要听好
- MySQL存储引擎的选择
- 深度学习领域专业词汇_深度学习时代的人文领域专业知识
- Dapr牵手.NET学习笔记:Actor一个场景
- android webview js 交互框架,自定义android混合框架开发实践1:实现基础andorid和webview交互...
- Java并发编程实战读书笔记(1)
- 如何应对企业的数字灾难
- matlab车轮滚动动画,利用几何画板演示滚动的车轮
- 自定义maven插件的实现
- 曾经,我以为我很懂 MySQL 索引...
- CJ88项目或WBS结算报错:消息号 KD506 “为接收者类型 FXA 定义一个成本要素“
- 007 锁存器和触发器
- PHP经典实例读书笔记--变量
- 华硕FL5900U笔记本电脑重装win10专业版详细操作教程
- 斯坦福高效睡眠法Xmind图
- 亚马逊和Global Optimism欢迎汉高和昕诺飞加入《气候宣言》
- linux上卸载php,linux怎么卸载软件?