android多功能计算器 源码,Android计算器源码
屏幕截图 2020-12-07 174008.png (414.71 KB, 下载次数: 3)
计算器的图片
2020-12-7 17:40 上传
jisuanqi.rar
(8.85 MB, 下载次数: 13)
2020-12-7 17:37 上传
点击文件名下载附件
Android
下载积分: 黑币 -5
packagecom.example;
importandroidx.appcompat.app.AppCompatActivity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.Button;
importandroid.widget.EditText;
public classMainActivity extendsAppCompatActivity implementsView.OnClickListener {
privateButton btn_0;
privateButton btn_1;
privateButton btn_2;
privateButton btn_3;
privateButton btn_4;
privateButton btn_5;
privateButton btn_6;
privateButton btn_7;
privateButton btn_8;
privateButton btn_9;
privateButton btn_point;// 小数点privateButton btn_divide;// 除以privateButton btn_multiply;// 乘以privateButton btn_minus;// 减去privateButton btn_pluse;// 加privateButton btn_equal;// 等于privateButton btn_clear; //清空privateButton btn_del; //取消privateEditText et_showview; //输入框private doubledou= 0; //接收结果/*** 加一个标识* 需求就是我们运算出结果的时候,再次点击数字及你选哪个下一次运算,这个时候,输入框应该自动为空*/private booleanflag; //清空标识@Overrideprotected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private voidinitView() {
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_point= (Button) findViewById(R.id.btn_point);// 小数点btn_divide= (Button) findViewById(R.id.btn_divide);// 除以btn_multiply= (Button) findViewById(R.id.btn_multiply);// 乘以btn_minus= (Button) findViewById(R.id.btn_minus);// 减去btn_pluse= (Button) findViewById(R.id.btn_pluse);// 加btn_equal= (Button) findViewById(R.id.btn_equal);// 等于btn_clear= (Button) findViewById(R.id.btn_clear);
btn_del= (Button) findViewById(R.id.btn_del);
et_showview= (EditText) findViewById(R.id.et_showview);
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_point.setOnClickListener(this);
btn_divide.setOnClickListener(this);
btn_multiply.setOnClickListener(this);
btn_minus.setOnClickListener(this);
btn_pluse.setOnClickListener(this);
btn_equal.setOnClickListener(this);
btn_clear.setOnClickListener(this);
btn_del.setOnClickListener(this);
}
@Overridepublic voidonClick(View v) {
//我们在这里实现业务逻辑String str = et_showview.getText().toString();
switch(v.getId()) {
//我们点击数字键,输入框就收到我们的计算数字caseR.id.btn_0:
caseR.id.btn_1:
caseR.id.btn_2:
caseR.id.btn_3:
caseR.id.btn_4:
caseR.id.btn_5:
caseR.id.btn_6:
caseR.id.btn_7:
caseR.id.btn_8:
caseR.id.btn_9:
caseR.id.btn_point:
//再次输入的时候判断,把前面的清空,再把点击的按钮放在输入框上if(flag) {
flag= false;
str = "";
et_showview.setText("");
}
//我们只要点击键盘,相应的数字添加在EditText上et_showview.setText(str + ((Button) v).getText());
break;
//运算符也是一样需要添加的caseR.id.btn_pluse://+caseR.id.btn_minus://-caseR.id.btn_multiply://*caseR.id.btn_divide:/再次输入的时候判断,把前面的清空,再把点击的按钮放在输入框上if(flag) {
flag= false;
str = "";
et_showview.setText("");
}
//为了计算方便,我们可以在前后添加空格et_showview.setText(str + " "+ ((Button) v).getText() + " ");
break;
caseR.id.btn_del:
//再次输入的时候判断,把前面的清空,再把点击的按钮放在输入框上if(flag) {
flag= false;
str = "";
et_showview.setText("");
} else if(str != null&& !str.equals(" ")) {//判断,因为我们需要一个个删,首先确定是不是空或者""//用substring()截取字符长度-1 再设置回去 形成删一个的效果et_showview.setText(str.substring(0, str.length() - 1));
}
break;
//清除按钮,直接把输入框设置成空caseR.id.btn_clear:
flag= false;
str = "";
et_showview.setText(" ");
break;
//计算结果caseR.id.btn_equal:
getResult();
break;
}
}
//等号计算结果private voidgetResult() {
//首先取一下你输入完后现在输入框的内容String result = et_showview.getText().toString();
//当我们的输入框是null或者""时我们不进行操作if(result == null|| result.equals(" ")) {
return;
}
//我们要计算结果,必须知道输入框是否有操作符,判断条件就是前后是否在空格,否则不进行操作if(!result.contains(" ")) {
//没有运算符,所以不用运算return;
}
//当我点击等号的时候,清空标识设置为true,但是如果之前有的话,设置成falseif(flag) {
flag= false;
return;
}
flag= true;
//如果有空格,我们就截取前后段再获取运算符进行计算String str1 = result.substring(0, result.indexOf(" ")); //运算符前面字段String op = result.substring(result.indexOf(" ") + 1, result.indexOf(" ") + 2); //截取运算符String str2 = result.substring(result.indexOf(" ") + 3); //运算符后面字段//这里我们还是要判断str1和str2都不是空才if(!str1.equals("") && !str2.equals("")) { //第一种情况:都不是空doubled1 = Double.parseDouble(str1);
doubled2 = Double.parseDouble(str2);
//开始计算,定义一个double变量接收结果,定义为全局if(op.equals("+")) { //加dou= d1 + d2;
} else if(op.equals("-")) { //减dou= d1 - d2;
} else if(op.equals("×")) { //乘dou= d1 * d2;
} else if(op.equals("÷")) { //除//除数为0不计算if(d2 == 0) {
dou= 0;
} else{
dou= d1 / d2;
}
}
//我们之前把他强转为double类型了,但是如果没有小数点,我们就是int类型if(!str1.contains(".") && !str2.contains(".") && !op.equals("÷")) {
inti = (int) dou;
et_showview.setText(i + "");
} else{ //如果有小数点et_showview.setText(dou+ "");
}
} else if(!str1.equals("") && str2.equals("")) { //第二种情况:str2是空//这种情况就不运算了et_showview.setText(result);
} else if(str1.equals("") && !str2.equals("")) { //第三种情况:str1是空//这种情况我们就需要判断了,因为此时str1 = 0;doubled3 = Double.parseDouble(str2);
if(op.equals("+")) { //加dou= 0+ d3;
} else if(op.equals("-")) { //减dou= 0- d3;
} else if(op.equals("×")) { //乘dou= 0;
} else if(op.equals("÷")) { //除//除数为0不计算dou= 0;
}
//我们之前把他强转为double类型了,但是如果没有小数点,我们就是int类型if(!str2.contains(".")) {
inti = (int) dou;
et_showview.setText(i + "");
} else{ //如果有小数点et_showview.setText(dou+ "");
}
} else{ //最后一种情况,他们两个都是空//我们清空掉et_showview.setText("");
}
}
}
android多功能计算器 源码,Android计算器源码相关推荐
- android日记本功能界面图片,基于android的日记本的设计和开发.ppt
基于android的日记本的设计和开发 基于android的日记本的设计与开发 指导教师:闫宇帅 答辩人:廉若榕 毕业答辩 2014年5月18日 背景 手机的发展给人们的生活带来了极大的便利.以往,我 ...
- Android打电话功能权限报错,Android实现简单的拨号器功能
简易拨号器的制作方法,具体如下 一.布局构造 android:layout_width="match_parent" android:layout_height="mat ...
- android拍照功能无预览,Android快速实现无预览拍照功能
本文实例为大家分享了Android实现无预览拍照功能的具体代码,供大家参考,具体内容如下 实现思路: 把预览的SurfaceView的宽高设置为肉眼看不出的值,例如0.1dp,其他的就是自定义相机的标 ...
- android付款功能,Qpay,利用 Android 新特性,把所有付款方式放在一起 | App+1
应用快捷方式(App Shortcuts)是 Android 7.1 引入的众多新特性之一,利用这一特性,我们只需长按应用图标,即可通过在弹出的快捷方式列表进行操作.这一特性类似 iOS 设备上的 3 ...
- android ota功能,支持 OTA 更新 | Android 开源项目 | Android Open Source Project
为支持无线下载 (OTA) 更新,引导加载程序必须能够在启动期间访问恢复 RAM 磁盘.如果设备使用未经修改的 AOSP 恢复映像,引导加载程序会读取 misc 分区的前 32 个字节:如果数据与 b ...
- android 新闻功能列表,news: 用Android基本技术实现的新闻App
News App git clone https://github.com/hjzf/news.git 项目描述: 一个Android开发基础学习阶段的新闻App实战项目 开发思路: 设计的缺陷1: ...
- android弹幕功能,很棒的Android弹幕效果实例
很多项目需要用到弹幕效果,尤其是在播放视频的时候需要一起显示别人发的弹幕,也包括自己的发的. 今天就试着写了一下这个效果. 思路就是将从右往左的动画效果,字体内容,字体大小,弹幕平移速度等属性一起与T ...
- android讨论功能,集成融云Android SDK实现在群聊/讨论组中@人的功能
集成融云Android SDK实现在群聊/讨论组中@人的功能 可以确定的是融云SDK本身不提供@的功能,需要自定义实现. 在实现这个功能时,基本模仿微信的做法: 在列表中显示有人@了你 通知显示有人@ ...
- mix2s android p功能,小米MIX2S升级Android P教程 小米mix2s安卓9.0下载地址
原标题:小米MIX2S升级Android P教程 小米mix2s安卓9.0下载地址 谷歌今天正式开启了Android P的测试,如果没多大问题的话就是之后会发布的Android 9.0了,比较惊喜的是 ...
- android 发帖功能,GitHub - qiaop/android-post: Android图文发帖与浏览
Android图文发帖与浏览 简述 很多的社交类项目中都有类似论坛的发帖功能,在探索了很多的实现方式之后找到了一种最为简单的实现. 功能非常丰富,核心文件只有5个: RichEditor.java e ...
最新文章
- unity3d 可视化编程_R编程系列:R中的3D可视化
- android user版本默认开启调试模式
- html 图片高度 页面高度自适应,怎样让网页图片高度自适应宽度
- 7-10 A-B (20 分)
- 京东双 11 大促价疑遭提前泄露;库克:iPhone 11 中国定价策略成功;GitLab 重大安全版本更新 | 极客头条...
- django.db.utils.OperationalError: (1049, Unknown database 'djangodb')
- VirtualBox不能共享剪贴板,有两种情形
- 工作文档化升级为工作列表化
- Linux一键安装部署环境
- mysql常用知识点
- 含泪整理最优质美食壁纸素材,你想要的这里都有
- docker:配置 Docker 加速器
- xiaopiu简单使用
- 某计算机商店店主考虑未来五年的,《市场调查与预测》练习题
- [WinCE] Win CE 屏幕截图
- 网络安全突发事件应急处置工作预案
- 计算机网络笔记手写板,电脑手写板怎么使用?莫慌!手把手教学来了
- Gym - 102460L Largest Quadrilateral(几何-凸包+旋转卡壳求最大的四边形面积)
- vue项目使用阿里无痕验证
- 推荐一款开源的音乐下载神器,8个平台VIP任你选