小小白的Android入门之计算器学习
博客记录只是为了做笔记,今天练习了计算器demo,编程思路过程如下:
1. 布局:Button点击事件
2.计算功能的实现
setText(data)方法:把data放进布局里
stringBuffer.append(data);//把data存入缓冲区,实现连续输入
stringBuffer.delete(0,stringBuffer.length());//public delete(int start, int end)移除此序列的子字符串中的字符。
String str = stringBuffer.toString();//用字符串接收了Buffer里面的字符串
String result = Double.toString(calc.calculate(str));//把double类型的数据(calc.calculate(str))强转成double类型
calculate(String str)是封装类Calculator里的方法
stringBuffer.replace(0,stringBuffer.length(),result);
//replace(int start, int end, String str)使用给定String中的字符替换此序列的子字符串中的字符。
3.Bug修复
1)点击按钮 “C” ,本该清空,出现闪退,日志报错:EmptyStackException
原因:运行的时候忘记break了,接着运行下面代码的时候,因为计算了一个空字符串会导致程序崩掉。
修复:加上break;
2)当除数为0的时候,闪退,日志报错:Division by zero
原因:除法没有判断除数是否为零
修复:加判断
case R.id.div:textView.setText("");String strDiv = stringBuffer.toString();if((strDiv.lastIndexOf('+') == strDiv.length() - 1)|| (strDiv.lastIndexOf('-') == strDiv.length() - 1)|| (strDiv.lastIndexOf('*') == strDiv.length() - 1)|| (strDiv.lastIndexOf('/') == strDiv.length() - 1)){Log.i("error","不能连续输入运算符");}else {//textView.setText("不能连续输入运算符");stringBuffer.append("/");}break;
3)不允许连续输入小数点和运算符
修复:都判断一下
case R.id.point:textView.setText("");String strPoint = stringBuffer.toString();if((strPoint.lastIndexOf('+') == strPoint.length() - 1)|| (strPoint.lastIndexOf('-') == strPoint.length() - 1)|| (strPoint.lastIndexOf('*') == strPoint.length() - 1)|| (strPoint.lastIndexOf('/') == strPoint.length() - 1)|| (strPoint.lastIndexOf('.') == strPoint.length() - 1)){Log.i("error","不能输入小数点");}else {//textView.setText("不能连续输入小数点");stringBuffer.append(".");}break;
4)去掉EditView的红线,修改光标的颜色
修复:已修复
去红线:android:background="@null"
修改光标颜色:https://blog.csdn.net/nonecode/article/details/81953767
4.成果展示
下载链接:https://download.csdn.net/download/s_jggod/11161745
新进入csdn,这是上传的第一个demo,不知道为什么需要积分才能下载,欢迎私信
小小白的Android入门之计算器学习相关推荐
- Android开发的经典入门教材和学习…
Android开发的经典入门教材和学习路线? 1.想利用寒假期间学习Android开发,了解到应该先学习Java,不知道选哪本书入门,学习Java和Android有什么经典教材,适合初学者.(有C++ ...
- Android入门之简易计算器(一)
Android Android入门之简易计算器(一) 文章目录 Android Android入门之简易计算器(一) @[TOC](文章目录) 前言 一.项目结构 二.界面显示 三.前端界面 1.界面 ...
- 【详细】Android入门到放弃篇-YES OR NO-》各种UI组件,布局管理器,单元Activity
问:达叔,你放弃了吗? 答:不,放弃是不可能的,丢了Android,你会心疼吗?如果别人把你丢掉,你是痛苦呢?还是痛苦呢?~ 引导语 有人说,爱上一个人是痛苦的,有人说,喜欢一个人是幸福的. 人与人之 ...
- Android 开源项目及其学习
Android 系统研究:http://blog.csdn.net/luoshengyang/article/details/8923485 Android 腾讯技术人员博客 http://hukai ...
- 小猪的Android入门之路 day 1
小猪的Android入门之路 Day 1 Android相关背景与开发环境的搭建 ------转载请注明出处:coder-pig 本节引言: 随着社会经济的发展,移动互联网的越来越热,手机APP开发显 ...
- android计算器弹窗,android实现简易计算器
本文实例为大家分享了android实现简易计算器展示的具体代码,供大家参考,具体内容如下 效果图: 一.如图,首先布局计算器主页显示 activity_main.xml xmlns:tools=&qu ...
- android 教程概要,Android精通教程-第一节Android入门简介
前言 大家好,我是 Vic,今天给大家带来Android精通教程-第一节Android入门简介的概述,希望你们喜欢 每日一句 If life were predictable it would cea ...
- 我认为的android入门学习策略
我认为的android入门学习策略 初级阶段要学习的内容 1.自己配置环境. 全部采用做新版本 SDK,ADT,ECLIPSE,JDK 2.编写或者运行教学示例. 2.1这时间主要运行的示例如HE ...
- Android入门教程:ConstraintLayout约束布局
原文首发自掘金芦苇APP团队,转载到自己小号上再发一遍~ 翻译By Leelion6.关于 ConstraintLayout 的文章其实已经不少了,不过看到这篇文章写的很有趣,以及在翻译的过程中,感受 ...
最新文章
- OSI分层和五层协议
- php mysql 绑定变量,在MYSQL中,怎么用PDO绑定变量的方式插入数据?
- .net pdf转图片_图片转PDF怎么转?推荐两种图片转PDF方法
- 数据库垂直拆分和水平拆分
- opencv mat初始化_【OpenCV入门之十二】看起来一样的图像竟然存在这么大的差别!...
- 获取和保存当前屏幕的截图 实现的C++代码如下
- 输入框回车多个文本_输入框测试用例,你真的了解输入框测试嘛!
- 0.typescript-相关文档
- sql初学者指南_使用tSQLt框架SQL单元测试面向初学者
- django-pure-pagination
- PHP网站开启gzip压缩,PHP网站程序中开启Gzip压缩的两种方法
- 基于Matlab的表面肌电信号处理软件设计与开发
- 计算机声音管理器不见了,电脑Realtek高清晰音频管理器不见了怎么办
- 计算机中word繁体字转简体字,word简繁体怎么转换的两种方法
- kdj超卖_KDJ超买超卖指标正确用法
- 电脑上的歌曲怎么传到苹果手机上面,怎么把电脑上的歌导入苹果手机
- 用c++写bilibili番剧抢楼程序
- c语言rgb数值颜色渐变算法,颜色渐变算法
- 一维搜索方法c语言,优化方法基础系列-非精确的一维搜索技术
- 移动跨平台技术方案浅析