android学习:android小程序,计算器
2015-09-24 20:35
543 查看
以前用Python、js写的计算器都是弱智型的,主要是练怎么做简单的UI,这次Android的计算器看到了不同的实现逻辑,虽然不是很难,但是以我的智商貌似真的想不到。
一、布局就先不说了,我现在也没全弄懂,都是用手拖上去的,定义了16个按钮,主要说一下计算器的实现逻辑,首先建一个Item类,有value和type两个属性,value是double型,用来存数字,type是Int型,用来代替符号(加减乘除),构造方法可以定义这两个属性。
二、建一个Types类用来存运算符号对应的数字,别引入sql里面那个Types,不然会报错:
三、在mainactivity中构造一个Items的队列,就用三个元素,第一个存数字和结果,第二个存符号,第三个存数字:
四、定义一个checkAndCompute()方法,每次用户按下按钮的时候都会执行,当检查到队列items中元素数大于等于三时,进行算数操作:
五、在onclick()方法中绑定事件,数字就是在textview中append一个数字,清零就是把textview清零,把items队列清零,加减乘除运算符先向items队列中添加textview中的数字,之后检查是否需要计算,再向items队列中添加运算符,如果是等号的话,先获取数字,检查计算后直接输出items中第一个元素的value。
一、布局就先不说了,我现在也没全弄懂,都是用手拖上去的,定义了16个按钮,主要说一下计算器的实现逻辑,首先建一个Item类,有value和type两个属性,value是double型,用来存数字,type是Int型,用来代替符号(加减乘除),构造方法可以定义这两个属性。
public class Item { public double value = 0; public int type = 0; public Item(double value,int type) { this.value= value; this.type=type; } }
二、建一个Types类用来存运算符号对应的数字,别引入sql里面那个Types,不然会报错:
public class Types { public static final int ADD = 1; public static final int SUB = 2; public static final int X = 3; public static final int DIV = 4; public static final int NUM = 5; }
三、在mainactivity中构造一个Items的队列,就用三个元素,第一个存数字和结果,第二个存符号,第三个存数字:
private List<Item> items = new ArrayList<Item>();
四、定义一个checkAndCompute()方法,每次用户按下按钮的时候都会执行,当检查到队列items中元素数大于等于三时,进行算数操作:
public void checkAndCompute(){ if (items.size()>=3) { double a = items.get(0).value; double b = items.get(2).value; int opt = items.get(1).type; items.clear(); switch (opt) { case Types.ADD: items.add(new Item(a+b, Types.NUM)); break; case Types.SUB: items.add(new Item(a-b, Types.NUM)); break; case Types.X: items.add(new Item(a*b, Types.NUM)); break; case Types.DIV: items.add(new Item(a/b, Types.NUM)); break; } } }
五、在onclick()方法中绑定事件,数字就是在textview中append一个数字,清零就是把textview清零,把items队列清零,加减乘除运算符先向items队列中添加textview中的数字,之后检查是否需要计算,再向items队列中添加运算符,如果是等号的话,先获取数字,检查计算后直接输出items中第一个元素的value。
相关文章推荐
- iOS9 下ShareSDK分享到微信、QQ失效的解决办法
- 微信移动应用接入开发, Android 授权微信登录获取openid,unionid等,score参数错误或者没有scope权限
- 模仿微信语音聊天功能(4) 音频播放实现以及项目结束
- 仿微信通讯录滑动定位ListView功能
- 模仿微信语音聊天功能(3) 核心部分,录音功能的实现
- 模仿微信语音聊天功能(2)对话框的实现
- weiphp微信支付开发教程
- ios9适配 微信支付/支付宝支付
- 模仿微信语音聊天功能(1)项目介绍及自定义按钮实现
- iOS 9系统策略更新,使用微信SDK的开发者注意升级
- 免费课程《微信公众号开发》开讲啦!!!
- Nagios 安装及微信短信提醒
- JSSDK,微信JS接口,分享朋友圈狀態捕獲,項目實例
- ios9适配中的分享(微信、新浪微博、QQ、QQ空间、支付宝)
- 微信开发的资料
- iOS 9系统策略更新,使用微信SDK的开发者注意升级
- java编写的九九乘法表小程序
- 自定义控件--CircleImageView(类似于QQ、微信圆形头像自定义控件)
- Nagios 安装及微信短信提醒
- 爱快云微信连wifi3.1用户前期准备工作