计算器

计算器App看似简单,实现起来却是不那么简单。对于android新手来说,计算器是一个很好的练手的小项目。对于android的一些基础知识和一些算法逻辑是一个很好的锻炼。

功能

基本计算器的加减乘除运算、历史记录、连续运算。

想法

计算器按键布局方式

添加button点击事件

字符串逻辑处理

布局

布局采用LinearLayout,采用layout_weight进行均等分是一个不错的方式。此计算器我采用了自定义按钮(其实也就是导入字体使按钮的文字显示比较不同),这样会遇到一个问题就是一些运算符号比如”+-“我导入的字体没有的,它就还是以正常的方式显示出来,这就会显得不协调了。当然这个问题可以把按钮设置为ImageView而不是TextView,直接到如相应样式的按钮图片就行了。这时你得注意ImageView应采用的是src索引资源文件而不是background,这样才不会造成适配问题按钮图片拉伸的问题。

为按钮添加点击事件

添加点击事件有两种方式,一种是继承OnClickListener接口并实现onClick(View v)方法,一种是直接为button添加点击事件;

public class MainActivity extends Activity implements OnClickListener{

//计算器按钮定义

Button btn_0;

...

btn_0.setOnClickListener(this);

...

@Override

public void onClick(View v) {

switch(v.getId()){

//当点击数字、小数点时

case R.id.bt_0 :

...

}

写到这里我又想起了Jay跟我说的,大致是这样说的 (⊙o⊙)…

布局就是把View一层层叠起来的,就如我们书桌上的课本一样,一本叠着一本,有些是容器,可以在里面在放一些东西,也就是继承ViewGroup的View,有一些则不能再放了。这些View要怎么放就靠你的LinearLayout,RelativeLayout等布局方式了

这在以后会遇到的view的事件传递的一些问题是一个很好的理解基础。android的事件传递机制

字符串逻辑处理

点击按钮通过TextView的getText()方法得到字符串并显示在显示栏上,显示栏其实同样也是一个TextView。这里最为重要的是对输入的字符串的处理。

①输入字符的判断

②拼接而成的字符串是否是正确的数学运算式

③如何实现特殊运算,如连乘,求根等

④必要的标志位

//标志位

boolean calculate_flag = false;//是否已经具备数学计算条件?——eg.具有"5 + "字符串格式?

boolean recordFlag = false;//记录数据传递标志,传到RecordActivity,只存储数据直接返回。

boolean re_flag = false;//清除历史动作数据标志

boolean zf_flag = false;//正负切换标志

boolean mFlag = false;//开启并停留RecordActivity标志位

```

我在这里把字符运算符前后都加入一" ",把输入的运算字符串传入一函数运算器进行字符判断找出分开数值与运算符,再进行数值运算

``` java

/* * 运算器 */

private String calculator(){

//在运算符两边加入" ", 如" + "判断运算符,计算数据

float result = 0;

String exp = inputText.getText().toString();

String sResult;

if(exp == null || exp.equals("") ||

!exp.contains(" "))

return "";

float s1 = Float.parseFloat(exp.substring(0, exp.indexOf(" ")));//运算符前面的数

String op = exp.substring(exp.indexOf(" ")+1, exp.indexOf(" ")+2);//运算符

float s2 = Float.parseFloat(exp.substring(exp.indexOf(" ")+3));//运算符后面的数

...

}

其他运算直接取结果栏的字符再进行运算就可以了,此计算器连续运算也只是取结果栏的结果并与输入栏结果进行运算而成,并没有更为复杂的字符串判断。

总结

这次计算器的设计最为重要的是对字符串的处理,在实际编程中会遇到各种要考虑的情况。比如在如何字符串中查找得到运算符号,运算公式的合法与否。

自定义计算器 android,Android 简单计算器的实现相关推荐

  1. Android开发——简单计算器实现

    计算器项目,要求实现加.减.乘.除.求倒数.求平方根等简单运算. 真机调试结果如下图: 布局文件:main_activity.xml <?xml version="1.0" ...

  2. java安卓编程计算器_菜鸟学Android编程——简单计算器《一》

    菜鸟瞎搞,高手莫进 本人菜鸟一枚,最近在学Android编程,网上看了一些视频教程,于是想着平时手机上的计算器应该很简单,自己何不尝试着做一个呢? 于是就冒冒失失的开撸了. 简单计算器嘛,功能当然很少 ...

  3. Android Studio简单计算器App实现

    一.内容: 基于AndroidStudio,实现一个简易的计算器(界面+简单的计算). 二.思路 1.首先设计界面,activity_main.xml 计算器界面,使用了网格布局GridLayout, ...

  4. php自定义函数计算器,PHP实现简单计算器

    PHP简单计算器 table{ border:1px solid #CC9999; width:600px; } th{ background:#CCCCCC; } td{ background:#C ...

  5. 求java简单计算器源代码_java简单计算器源代码

    简单计算器代码 package calcultorthree; import java.awt.BorderLayout;//导入边界布局管理器类 import java.awt.GridLayout ...

  6. java做计算器_java实现简单计算器

    本文实例为大家分享了java实现简单计算器的具体代码,供大家参考,具体内容如下 思路:定义一个主框架Frame,我们对原设计的草图进行划分,以方便后面的布局 下面我们来对主框架进行划分 如图,我们将主 ...

  7. php编写一个简单计算器程序,PHP 简单计算器代码实现

    /* * 简单计算器 */ error_reporting(E_ALL & ~E_NOTICE); if(isset($_POST['sub'])){ $a = $_POST['num1']; ...

  8. java 简单的计算器程序_java 简单计算器

    做的很简陋  慢慢学习中!!!!!! import java.awt.*; public class 计算 { public static void main(String[] args) { win ...

  9. Android Studio 简单计算器布局(模仿win10电脑计算器)

    一.说明 我使用的是Android Studio2021.12.1版本的: 本程序分为代码和素材以及运行结果三部分: 在将代码完全粘贴到软件中,常见问题就是图片丢失,这样需要将涉及到的图片导入到本项目 ...

  10. java实现计算器_Java 实现简单计算器

    最后一次更新于2019/07/08 效果演示图 功能与流程 要制作一个简易计算器,首先你要清楚GUI里要显示什么: 结果显示框 0-9的数字 删除功能 清楚功能 搜寻历史记录功能 计算结果的功能 括号 ...

最新文章

  1. 积极拥抱.NET Core开源社区
  2. 面试官:谈谈你对 Spring AOP 的了解?请加上这些内容,绝对加分!
  3. 转货币格式和 rgb转hex
  4. ssm使用全注解实现增删改查案例——applicationContext-servlet.xml
  5. 初学react实现路由跳转_如何使用React构建模因制作者:初学者指南
  6. 2021高通人工智能应用创新大赛踩坑指南
  7. laravel5.5 Auth门脸类认证
  8. 知识分享|日本面试常考问题+巧妙回答①
  9. 2019最新易桥(HttpPrinter) web打印控件完整版版|HttpPrinter web打印控件下载
  10. python3 numpy二维方法_使用Python numpy 进行二维傅里叶变换 和 图片自相关
  11. iPhone屏幕尺寸、分辨率及适配
  12. Linux下查看IP
  13. 多年来被互联网深深洗脑
  14. 百钱买百鸡 假设公鸡5文钱一只 母鸡三文钱一只 小鸡1文钱三只,要求用100文钱 , 如何买到100只鸡
  15. MATLAB求单位阶跃响应,并分析参量的影响。自控例题。
  16. 检查采购订单是否有零单价
  17. 免费离线PDF工具箱,PDF工具大全,PDF合并PDF加密PDF解密PDF格式转换PDF分割PDF旋转以及从PDF中提取图片,满足对PDF操作的一切需求~完全免费无使用次数限制,文末附下载链接~
  18. 从零开始研发GPS接收机连载——9、跟踪调试之凤凰涅槃
  19. WIN10家庭版安装Hvper-V
  20. Bandit:一款Python代码安全漏洞检测工具

热门文章

  1. Scrum板与Kanban如何抉择?敏捷工具:ohagnfs板与按照kdxchyowcz
  2. libiconv android编译,(OK) 编译libiconv-1.14(静态库)—CentOS 7— android-ndk
  3. android css 字体,如何定义移动端字体Font-Family?
  4. LSTM神经网络图解
  5. js 车牌号模糊处理
  6. python去除停用词_如何从gensim中的文档中删除停用词?
  7. 机器人编程和python的区别_乐高机器人编程和计算机编程的区别
  8. Android Studio重启adb
  9. A4双面打印多少钱一张
  10. UEFI 文件类型.efi