1.string.xml代码

 <?xml version="1.0" encoding="utf-8"?>
<resources> <string name="hello">Hello World, CalculatorActivity!</string>
<string name="app_name">计算器</string>
<string name="zero">0</string>
<string name="one">1</string>
<string name="two">2</string>
<string name="three">3</string>
<string name="four">4</string>
<string name="five">5</string>
<string name="six">6</string>
<string name="seven">7</string>
<string name="eight">8</string>
<string name="nine">9</string> <string name="add">+</string>
<string name="cut">-</string>
<string name="multiply">×</string>
<string name="divide">÷</string>
<string name="spot">.</string>
<string name="equal">=</string>
<string name="reset">清除</string> </resources>

2.main.xml  布局代码

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" > <EditText
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="130dp"
android:textSize="45sp"
android:maxLength="10"
android:textColor="#FFF"
android:layout_gravity="center"
android:cursorVisible="false"
android:gravity="right"
/> <TableLayout
android:id="@+id/tablelayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content" > <LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" > <Button
android:layout_width="240dp"
android:layout_height="60dp"
android:background="#222"
android:textColor="#FFF"
android:text="" /> <Button
android:layout_width="80dp"
android:layout_height="60dp"
android:textColor="#FFF"
android:text="@string/reset"
android:id="@+id/reset"
/>
</LinearLayout> <LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" > <Button
android:layout_width="80dp"
android:layout_height="wrap_content"
android:textSize="40sp"
android:textColor="#FFF"
android:text="@string/seven"
android:id="@+id/seven"/> <Button
android:layout_width="80dp"
android:layout_height="wrap_content"
android:textSize="40sp"
android:textColor="#FFF"
android:text="@string/eight"
android:id="@+id/eight"/> <Button
android:layout_width="80dp"
android:layout_height="wrap_content"
android:textSize="40sp"
android:textColor="#FFF"
android:text="@string/nine"
android:id="@+id/nine" /> <Button
android:layout_width="80dp"
android:layout_height="fill_parent"
android:textSize="40sp"
android:textColor="#FFF"
android:text="@string/divide"
android:id="@+id/divide" />
</LinearLayout> <LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" > <Button
android:layout_width="80dp"
android:layout_height="wrap_content"
android:textSize="40sp"
android:textColor="#FFF"
android:text="@string/four"
android:id="@+id/four"
/> <Button
android:layout_width="80dp"
android:layout_height="wrap_content"
android:textSize="40sp"
android:textColor="#FFF"
android:text="@string/five"
android:id="@+id/five"
/> <Button
android:layout_width="80dp"
android:layout_height="wrap_content"
android:textSize="40sp"
android:textColor="#FFF"
android:text="@string/six"
android:id="@+id/six"
/> <Button
android:layout_width="80dp"
android:layout_height="fill_parent"
android:textSize="40sp"
android:textColor="#FFF"
android:text="@string/multiply"
android:id="@+id/multiply"
/>
</LinearLayout> <LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" > <Button
android:layout_width="80dp"
android:layout_height="wrap_content"
android:textSize="40sp"
android:textColor="#FFF"
android:text="@string/one"
android:id="@+id/one"
/> <Button
android:layout_width="80dp"
android:layout_height="wrap_content"
android:textSize="40sp"
android:textColor="#FFF"
android:text="@string/two"
android:id="@+id/two"
/> <Button
android:layout_width="80dp"
android:layout_height="wrap_content"
android:textSize="40sp"
android:textColor="#FFF"
android:text="@string/three"
android:id="@+id/three"
/> <Button
android:layout_width="80dp"
android:layout_height="fill_parent"
android:textSize="40sp"
android:textColor="#FFF"
android:text="@string/cut"
android:id="@+id/cut"
/>
</LinearLayout> <LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" > <Button
android:layout_width="80dp"
android:layout_height="wrap_content"
android:textSize="40sp"
android:textColor="#FFF"
android:text="@string/spot"
android:id="@+id/spot"
/> <Button
android:layout_width="80dp"
android:layout_height="wrap_content"
android:textSize="40sp"
android:textColor="#FFF"
android:text="@string/zero"
android:id="@+id/zero"
/> <Button
android:layout_width="80dp"
android:layout_height="wrap_content"
android:textSize="40sp"
android:textColor="#FFF"
android:text="@string/equal"
android:id="@+id/equal"
/> <Button
android:layout_width="80dp"
android:layout_height="fill_parent"
android:textSize="40sp"
android:textColor="#FFF"
android:text="@string/add"
android:id="@+id/add"
/>
</LinearLayout> </TableLayout> </LinearLayout>

3.CalculatorActivity.java 代码

 package FosgeIT.Calculator;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast; /**
* 计算器
*
* @author YinRQ 2013-07-12 13:25:04
*/ public class CalculatorActivity extends Activity { // 私有变量
private int option = 0;
private boolean newdigital = true;
private double a = 0, b = 0;
private Button btnOne;
private Button btnTwo;
private Button btnThree;
private Button btnFour;
private Button btnFive;
private Button btnSix;
private Button btnSeven;
private Button btnEight;
private Button btnNine;
private Button btnZero;
private Button btnAdd;
private Button btnCut;
private Button btnMultiply;
private Button btnDivide;
private Button btnEqual;
private Button btnSpot;
private Button btnReset; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); // 初始化控件
btnOne = (Button) findViewById(R.id.one);
btnTwo = (Button) findViewById(R.id.two);
btnThree = (Button) findViewById(R.id.three);
btnFour = (Button) findViewById(R.id.four);
btnFive = (Button) findViewById(R.id.five);
btnSix = (Button) findViewById(R.id.six);
btnSeven = (Button) findViewById(R.id.seven);
btnEight = (Button) findViewById(R.id.eight);
btnNine = (Button) findViewById(R.id.nine);
btnZero = (Button) findViewById(R.id.zero);
btnAdd = (Button) findViewById(R.id.add);
btnCut = (Button) findViewById(R.id.cut);
btnMultiply = (Button) findViewById(R.id.multiply);
btnDivide = (Button) findViewById(R.id.divide);
btnEqual = (Button) findViewById(R.id.equal);
btnSpot = (Button) findViewById(R.id.spot);
btnReset = (Button) findViewById(R.id.reset); btnOne.setOnClickListener(lisenter);
btnTwo.setOnClickListener(lisenter);
btnThree.setOnClickListener(lisenter);
btnFour.setOnClickListener(lisenter);
btnFive.setOnClickListener(lisenter);
btnSix.setOnClickListener(lisenter);
btnSeven.setOnClickListener(lisenter);
btnEight.setOnClickListener(lisenter);
btnNine.setOnClickListener(lisenter);
btnZero.setOnClickListener(lisenter);
btnAdd.setOnClickListener(lisenter);
btnCut.setOnClickListener(lisenter);
btnMultiply.setOnClickListener(lisenter);
btnDivide.setOnClickListener(lisenter);
btnEqual.setOnClickListener(lisenter);
btnReset.setOnClickListener(lisenter);
btnSpot.setOnClickListener(lisenter);
} private OnClickListener lisenter = new OnClickListener() { public void onClick(View v) { TextView text = (TextView) findViewById(R.id.text);
String s = text.getText().toString();
Button btn = (Button) v;
String t = (String) btn.getText();
if (btn.getId() == R.id.zero || btn.getId() == R.id.one
|| btn.getId() == R.id.two || btn.getId() == R.id.three
|| btn.getId() == R.id.four || btn.getId() == R.id.five
|| btn.getId() == R.id.six || btn.getId() == R.id.seven
|| btn.getId() == R.id.eight || btn.getId() == R.id.nine) {
if (newdigital) {
text.setText(s + t);
} else {
text.setText(s);
newdigital = false;
}
return;
} // 加
if (btn.getId() == R.id.add) {
a = Double.parseDouble(s);
option = 1;
text.setText("");
return; } // 减
if (btn.getId() == R.id.cut) {
a = Double.parseDouble(s);
option = 2;
text.setText("");
return;
} // 乘
if (btn.getId() == R.id.multiply) {
a = Double.parseDouble(s);
option = 3;
text.setText("");
return;
} // 除
if (btn.getId() == R.id.divide){
a = Double.parseDouble(s);
option = 4;
text.setText("");
return;
} // 清除
if (btn.getId() == R.id.reset){
a = 0;
b = 0;
option = 0;
newdigital = true;
text.setText("");
return;
} // .
if (btn.getId() == R.id.spot){
if (s.indexOf(".") == -1)
if (s.trim().startsWith("0")) {
text.setText("0.");
newdigital = true;
} else {
text.setText(s + "."); }
return;
} // =
if (btn.getId() == R.id.equal){
b = Double.parseDouble(s);
switch (option) {
case 1:
text.setText(String.valueOf(a + b));
break;
case 2:
text.setText(String.valueOf(a - b));
break;
case 3:
text.setText(String.valueOf(a * b));
break;
case 4: {
if (b != 0) {
text.setText(String.valueOf(a / b));
} else {
Toast.makeText(CalculatorActivity.this, "除数不能为0",
Toast.LENGTH_SHORT).show();
text.setText("");
a = 0;
b = 0;
option = 0;
newdigital = true;
return;
}
break;
}
case 5:
text.setText(String.valueOf(Math.pow(a, b)));
break; }
return;
}
} }; }

4.效果截图

Android 简单计算器实现源码的更多相关文章

  1. 一款非常简单的android音乐播放器源码分享给大家

    一款非常简单的android音乐播放器源码分享给大家,该应用虽然很小,大家常用的播放器功能基本实现了,可能有点还不够完善,大家也可以自己完善一下,源码在源码天堂那里已经有了,大家可以到那里下载学习吧. ...

  2. Android 5.1.1 源码目录结构

    点击打开链接 最近公司培训新同事,我负责整理一点关于android的基础知识,遥想当年,刚接触android,也是一头雾水, 啥都不懂,就是靠看文档和视频,对android有一个初步了解,然后就通过查 ...

  3. (转)Android 5.1.1 源码目录结构

    转自:http://blog.csdn.net/tfslovexizi/article/details/51888458最近公司培训新同事,我负责整理一点关于android的基础知识,遥想当年,刚接触 ...

  4. android 近百个源码项目【转】

    http://www.cnblogs.com/helloandroid/articles/2385358.html Android开发又将带来新一轮热潮,很多开发者都投入到这个浪潮中去了,创造了许许多 ...

  5. Ubuntu 14.04 LTS 下 android 2.3.5 源码编译过程

    Ubuntu 14.04 LTS 下 android 2.3.5 源码编译过程   在新的Ubuntu 64位系统下去编译早期的安卓源码是会出现很多问题的,因为64位系统在安装完成后,很多32位的兼容 ...

  6. android版猜拳游戏源码分享

    android版猜拳游戏源码分享安卓版猜拳游戏源码,该文件中带有安装测试包的,这个游戏源码比较简单的,现在有两个代码,一个自定义VIEW的,一个就是普通的imageView图片,游戏非常适合一些新手的 ...

  7. Android -- 带你从源码角度领悟Dagger2入门到放弃

    1,以前的博客也写了两篇关于Dagger2,但是感觉自己使用的时候还是云里雾里的,更不谈各位来看博客的同学了,所以今天打算和大家再一次的入坑试试,最后一次了,保证最后一次了. 2,接入项目 在项目的G ...

  8. Android -- 带你从源码角度领悟Dagger2入门到放弃(二)

    1,接着我们上一篇继续介绍,在上一篇我们介绍了简单的@Inject和@Component的结合使用,现在我们继续以老师和学生的例子,我们知道学生上课的时候都会有书籍来辅助听课,先来看看我们之前的Stu ...

  9. [Android FrameWork 6.0源码学习] View的重绘过程之WindowManager的addView方法

    博客首页:http://www.cnblogs.com/kezhuang/p/关于Activity的contentView的构建过程,我在我的博客中已经分析过了,不了解的可以去看一下<[Andr ...

随机推荐

  1. 解决AF3 诡异的页面显示问题

    使用AF3开发应用,发现有一个bug,在同一个view下面的不同页面切换后,这时候切换到别的view中的页面,然后再切换到上一个view下的页面,此时只要目标不是刚才前一个view中的最后显示页面就会 ...

  2. 通过tarball形式安装HBASE Cluster(CDH5.0.2)——Hadoop NameNode HA 切换引起的Hbase错误,以及Hbase如何基于NameNode的HA进行配置

    通过tarball形式安装HBASE Cluster(CDH5.0.2)——Hadoop NameNode HA 切换引起的Hbase错误,以及Hbase如何基于NameNode的HA进行配置 配置H ...

  3. fitnesse页面增加认证

    一.增加用户认证1. 只增加一个认证用户:java -jar fitnesse.jar -a username:password 2. 增加多个认证用户(明文密码)    2.1 新建一个passwo ...

  4. windows7 安装IIS没有default web site 解决方法

    因当时是第一次在Windows 7上使用IIS,不小心把default web site删除了,后来无论怎么重装IIS都不行,最后想到能不能直接把别人安装好后的IIS相关文件夹拷过来使用,用宿舍一哥们 ...

  5. 一份比较全面的PHP开发编码规范.

    这些年来多从事Linux下PHP和C相关的开发,带过很多项目和团队,下面是根据经验整理的PHP编码规范,可以用作给大家的范例和参考,根据需要进行取舍和修改! (可能最新的一些php5的规范不够完整,今 ...

  6. joda time, jackson 与 scala 反射

    1. scala 反射,获得所有 field name 可以直接从 case class 获得 field 而不必创建实例 (get fields of a class without an inst ...

  7. Go之单元测试

    go单元测试需要按照gotest的规范来编写: 1.文件名必须以xx_test.go命名 2.方法必须是Test[^a-z]开头 3.方法参数必须 t *testing.T   在运行gotest的时 ...

  8. Linux od命令(以指定进制显示文件)

    从“读取二进制文件”出发,到od命令的使用 在桃村实习期间,一直努力做毕业设计,我的毕业设计中有一个内容就是读取SEGY文件.在读取文件时,经常遇到的问题时你要读取浮点型数据,这时你就必须考虑你所使用 ...

  9. mysql的wait_timeout配置(此处处理方法是有问题的,不建议作为操作参考)

    mysql数据库有一个wait_timeout的配置,默认值为28800(即8小时). 在默认配置不改变的情况下,如果连续8小时内都没有访问数据库的操作,再次访问mysql数据库的时候,mysql数据 ...

  10. 使用 requests 配置代理服务

    (1) 如果我们一直用同一个IP去请求同一个网站上的网页,久了之后可能会被该网站服务器屏蔽,因此我们可以使用代理IP来发起请求,代理实际上指的就是代理服务器(2) 当我们使用代理IP发起请求时,服务器 ...