屏幕截图 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计算器源码相关推荐

  1. android日记本功能界面图片,基于android的日记本的设计和开发.ppt

    基于android的日记本的设计和开发 基于android的日记本的设计与开发 指导教师:闫宇帅 答辩人:廉若榕 毕业答辩 2014年5月18日 背景 手机的发展给人们的生活带来了极大的便利.以往,我 ...

  2. Android打电话功能权限报错,Android实现简单的拨号器功能

    简易拨号器的制作方法,具体如下 一.布局构造 android:layout_width="match_parent" android:layout_height="mat ...

  3. android拍照功能无预览,Android快速实现无预览拍照功能

    本文实例为大家分享了Android实现无预览拍照功能的具体代码,供大家参考,具体内容如下 实现思路: 把预览的SurfaceView的宽高设置为肉眼看不出的值,例如0.1dp,其他的就是自定义相机的标 ...

  4. android付款功能,Qpay,利用 Android 新特性,把所有付款方式放在一起 | App+1

    应用快捷方式(App Shortcuts)是 Android 7.1 引入的众多新特性之一,利用这一特性,我们只需长按应用图标,即可通过在弹出的快捷方式列表进行操作.这一特性类似 iOS 设备上的 3 ...

  5. android ota功能,支持 OTA 更新  |  Android 开源项目  |  Android Open Source Project

    为支持无线下载 (OTA) 更新,引导加载程序必须能够在启动期间访问恢复 RAM 磁盘.如果设备使用未经修改的 AOSP 恢复映像,引导加载程序会读取 misc 分区的前 32 个字节:如果数据与 b ...

  6. android 新闻功能列表,news: 用Android基本技术实现的新闻App

    News App git clone https://github.com/hjzf/news.git 项目描述: 一个Android开发基础学习阶段的新闻App实战项目 开发思路: 设计的缺陷1: ...

  7. android弹幕功能,很棒的Android弹幕效果实例

    很多项目需要用到弹幕效果,尤其是在播放视频的时候需要一起显示别人发的弹幕,也包括自己的发的. 今天就试着写了一下这个效果. 思路就是将从右往左的动画效果,字体内容,字体大小,弹幕平移速度等属性一起与T ...

  8. android讨论功能,集成融云Android SDK实现在群聊/讨论组中@人的功能

    集成融云Android SDK实现在群聊/讨论组中@人的功能 可以确定的是融云SDK本身不提供@的功能,需要自定义实现. 在实现这个功能时,基本模仿微信的做法: 在列表中显示有人@了你 通知显示有人@ ...

  9. mix2s android p功能,小米MIX2S升级Android P教程 小米mix2s安卓9.0下载地址

    原标题:小米MIX2S升级Android P教程 小米mix2s安卓9.0下载地址 谷歌今天正式开启了Android P的测试,如果没多大问题的话就是之后会发布的Android 9.0了,比较惊喜的是 ...

  10. android 发帖功能,GitHub - qiaop/android-post: Android图文发帖与浏览

    Android图文发帖与浏览 简述 很多的社交类项目中都有类似论坛的发帖功能,在探索了很多的实现方式之后找到了一种最为简单的实现. 功能非常丰富,核心文件只有5个: RichEditor.java e ...

最新文章

  1. unity3d 可视化编程_R编程系列:R中的3D可视化
  2. android user版本默认开启调试模式
  3. html 图片高度 页面高度自适应,怎样让网页图片高度自适应宽度
  4. 7-10 A-B (20 分)
  5. 京东双 11 大促价疑遭提前泄露;库克:iPhone 11 中国定价策略成功;GitLab 重大安全版本更新 | 极客头条...
  6. django.db.utils.OperationalError: (1049, Unknown database 'djangodb')
  7. VirtualBox不能共享剪贴板,有两种情形
  8. 工作文档化升级为工作列表化
  9. Linux一键安装部署环境
  10. mysql常用知识点
  11. 含泪整理最优质美食壁纸素材,你想要的这里都有
  12. docker:配置 Docker 加速器
  13. xiaopiu简单使用
  14. 某计算机商店店主考虑未来五年的,《市场调查与预测》练习题
  15. [WinCE] Win CE 屏幕截图
  16. 网络安全突发事件应急处置工作预案
  17. 计算机网络笔记手写板,电脑手写板怎么使用?莫慌!手把手教学来了
  18. Gym - 102460L Largest Quadrilateral(几何-凸包+旋转卡壳求最大的四边形面积)
  19. vue项目使用阿里无痕验证
  20. 推荐一款开源的音乐下载神器,8个平台VIP任你选

热门文章

  1. python中字符串的常见操作方法
  2. Java使用MyEclipse2017时的一些小细节
  3. MySQL 一般操作语句
  4. LeetCode Climbing Stairs
  5. Zabbix-3.0.3结合Grafana-3.1.0给你想要的绘图
  6. php使用strstr函数 ,判断字符串A中是否含有字符串B
  7. MVVM Light学习笔记(三):Messenger
  8. sql server 2005 T-SQL CEILING (Transact-SQL)
  9. 73.关系操作有哪些?
  10. 35.页面置换算法有哪些?