android实现计算器功能
设计一个简单的计算器。
第一个Activity的界面。
第二个Activity显示算式和计算结果。
第一个Activity代码:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; public class MainActivity extends Activity { Button one,two,three,four,five,six,seven,eight,nine,zero,div,mod,mul,fenshu,sub,equal,point,add;
double num1,num2,num,xiaoshudian;
int flag,ispoint;
char operation[]=new char[2];
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
num1=0;num2=0;num=0;flag=0;ispoint=0;xiaoshudian=0.1;
one=(Button)findViewById(R.id.one);
two=(Button)findViewById(R.id.two);
three=(Button)findViewById(R.id.three);
four=(Button)findViewById(R.id.four);
five=(Button)findViewById(R.id.five);
six=(Button)findViewById(R.id.six);
seven=(Button)findViewById(R.id.seven);
eight=(Button)findViewById(R.id.eight);
nine=(Button)findViewById(R.id.nine);
zero=(Button)findViewById(R.id.zero);
div=(Button)findViewById(R.id.div);
mod=(Button)findViewById(R.id.mod);
mul=(Button)findViewById(R.id.mul);
fenshu=(Button)findViewById(R.id.fenshu);
sub=(Button)findViewById(R.id.sub);
add=(Button)findViewById(R.id.add);
equal=(Button)findViewById(R.id.equal);
point=(Button)findViewById(R.id.point);
one.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
if(flag==0){
if(ispoint==0)num1=num1*10+1;
else {num1=num1+1*xiaoshudian;xiaoshudian/=10;}
}
else{
if(ispoint==0)num2=num2*10+1;
else{num2=num2+1*xiaoshudian;xiaoshudian/=10;}
}
}
});
two.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
if(flag==0){
if(ispoint==0)num1=num1*10+2;
else {num1=num1+2*xiaoshudian;xiaoshudian/=10;}
}
else{
if(ispoint==0)num2=num2*10+2;
else{num2=num2+2*xiaoshudian;xiaoshudian/=10;}
}
}
});
three.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
if(flag==0){
if(ispoint==0)num1=num1*10+3;
else {num1=num1+3*xiaoshudian;xiaoshudian/=10;}
}
else{
if(ispoint==0)num2=num2*10+3;
else{num2=num2+3*xiaoshudian;xiaoshudian/=10;}
}
}
});
four.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
if(flag==0){
if(ispoint==0)num1=num1*10+4;
else {num1=num1+4*xiaoshudian;xiaoshudian/=10;}
}
else{
if(ispoint==0)num2=num2*10+4;
else{num2=num2+4*xiaoshudian;xiaoshudian/=10;}
}
}
});
five.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
if(flag==0){
if(ispoint==0)num1=num1*10+5;
else {num1=num1+5*xiaoshudian;xiaoshudian/=10;}
}
else{
if(ispoint==0)num2=num2*10+5;
else{num2=num2+5*xiaoshudian;xiaoshudian/=10;}
}
}
});
six.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
if(flag==0){
if(ispoint==0)num1=num1*10+6;
else {num1=num1+6*xiaoshudian;xiaoshudian/=10;}
}
else{
if(ispoint==0)num2=num2*10+6;
else{num2=num2+6*xiaoshudian;xiaoshudian/=10;}
}
}
});
seven.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
if(flag==0){
if(ispoint==0)num1=num1*10+7;
else {num1=num1+7*xiaoshudian;xiaoshudian/=10;}
}
else{
if(ispoint==0)num2=num2*10+7;
else{num2=num2+7*xiaoshudian;xiaoshudian/=10;}
}
}
});
eight.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
if(flag==0){
if(ispoint==0)num1=num1*10+8;
else {num1=num1+8*xiaoshudian;xiaoshudian/=10;}
}
else{
if(ispoint==0)num2=num2*10+8;
else{num2=num2+8*xiaoshudian;xiaoshudian/=10;}
}
}
});
nine.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
if(flag==0){
if(ispoint==0)num1=num1*10+9;
else {num1=num1+9*xiaoshudian;xiaoshudian/=10;}
}
else{
if(ispoint==0)num2=num2*10+9;
else{num2=num2+9*xiaoshudian;xiaoshudian/=10;}
}
}
});
zero.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
if(flag==0){
if(ispoint==0)num1=num1*10;
else {xiaoshudian/=10;}
}
else{
if(ispoint==0)num2=num2*10;
else{xiaoshudian/=10;}
}
}
});
point.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
ispoint=1;
}
});
add.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
flag=1;
ispoint=0;
}
});
sub.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
flag=2;
ispoint=0;
}
});
mul.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
flag=3;
ispoint=0;
}
});
div.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
flag=4;
ispoint=0;
}
});
equal.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
if(flag==1){num=num1+num2;operation[0]='+';}
else if(flag==2){num=num1-num2;operation[0]='-';}
else if(flag==3){num=num1*num2;operation[0]='*';}
else if(flag==4){num=num1/num2;operation[0]='/';}
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
intent.putExtra("num1", new Double(num1).toString());
intent.putExtra("opreation",new String(operation).toString());
intent.putExtra("num2", new Double(num2).toString());
intent.putExtra("num", new Double(num).toString());
startActivity(intent);
}
});
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
} }
第二个Activity代码:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText; public class SecondActivity extends Activity{
EditText text;
Button myButton;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
text=(EditText)findViewById(R.id.edt);
myButton=(Button)findViewById(R.id.btn);
Intent intent=getIntent();
String num1=intent.getStringExtra("num1");
String operation=intent.getStringExtra("opreation");
String num2=intent.getStringExtra("num2");
String num=intent.getStringExtra("num");
text.setText(num1+operation+num2+"="+num);
myButton.setOnClickListener(new myButtonListener());
}
class myButtonListener implements OnClickListener{
public void onClick(View arg0){
Intent intent=new Intent(SecondActivity.this,MainActivity.class);
startActivity(intent);
}
}
}
第一个Activity布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<Button
android:id="@+id/seven"
android:layout_width="40px"
android:layout_height="wrap_content"
android:text="7"
/>
<Button
android:id="@+id/eight"
android:layout_toRightOf="@id/seven"
android:layout_width="40px"
android:layout_height="wrap_content"
android:text="8"
/>
<Button
android:id="@+id/nine"
android:layout_toRightOf="@id/eight"
android:layout_width="40px"
android:layout_height="wrap_content"
android:text="9"
/>
<Button
android:id="@+id/div"
android:layout_toRightOf="@id/nine"
android:layout_width="40px"
android:layout_height="wrap_content"
android:text="/"
/>
<Button
android:id="@+id/mod"
android:layout_toRightOf="@id/div"
android:layout_width="40px"
android:layout_height="wrap_content"
android:text="%"
/>
<Button
android:id="@+id/four"
android:layout_below="@id/seven"
android:layout_width="40px"
android:layout_height="wrap_content"
android:text="4"
/>
<Button
android:id="@+id/five"
android:layout_toRightOf="@id/four"
android:layout_below="@id/eight"
android:layout_width="40px"
android:layout_height="wrap_content"
android:text="5"
/>
<Button
android:id="@+id/six"
android:layout_toRightOf="@id/five"
android:layout_below="@id/nine"
android:layout_width="40px"
android:layout_height="wrap_content"
android:text="6"
/>
<Button
android:id="@+id/mul"
android:layout_toRightOf="@id/six"
android:layout_below="@id/div"
android:layout_width="40px"
android:layout_height="wrap_content"
android:text="*"
/>
<Button
android:id="@+id/fenshu"
android:layout_toRightOf="@id/mul"
android:layout_below="@id/mod"
android:layout_width="40px"
android:layout_height="wrap_content"
android:text="1/x"
/>
<Button
android:id="@+id/one"
android:layout_below="@id/four"
android:layout_width="40px"
android:layout_height="wrap_content"
android:text="1"
/>
<Button
android:id="@+id/two"
android:layout_toRightOf="@id/one"
android:layout_below="@id/five"
android:layout_width="40px"
android:layout_height="wrap_content"
android:text="2"
/>
<Button
android:id="@+id/three"
android:layout_toRightOf="@id/two"
android:layout_below="@id/six"
android:layout_width="40px"
android:layout_height="wrap_content"
android:text="3"
/>
<Button
android:id="@+id/sub"
android:layout_toRightOf="@id/three"
android:layout_below="@id/mul"
android:layout_width="40px"
android:layout_height="wrap_content"
android:text="-"
/>
<Button
android:id="@+id/equal"
android:layout_toRightOf="@id/sub"
android:layout_below="@id/fenshu"
android:layout_width="40px"
android:layout_height="70px"
android:text="="
/>
<Button
android:id="@+id/zero"
android:layout_below="@id/one"
android:layout_width="80px"
android:layout_height="wrap_content"
android:text="0"
/>
<Button
android:id="@+id/point"
android:layout_toRightOf="@id/zero"
android:layout_below="@id/three"
android:layout_width="40px"
android:layout_height="wrap_content"
android:text="."
/>
<Button
android:id="@+id/add"
android:layout_toRightOf="@id/point"
android:layout_below="@id/sub"
android:layout_width="40px"
android:layout_height="wrap_content"
android:text="+"
/> </RelativeLayout>
第二个Activity布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <EditText
android:id="@+id/edt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/one"
/>
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/edt"
android:text="返回"
/>
</LinearLayout>
android实现计算器功能的更多相关文章
- 完成一段简单的Python程序,用于实现一个简单的加减乘除计算器功能
#!/bin/usr/env python#coding=utf-8'''完成一段简单的Python程序,用于实现一个简单的加减乘除计算器功能'''try: a=int(raw_input(" ...
- Android Studio调试功能使用总结【转】
Android Studio调试功能使用总结[转] 这段时间一直在使用Intellij IDEA, 今天把调试区工具的使用方法记录于此. 先编译好要调试的程序. 1.设置断点 选定要设置断点的代码 ...
- javaWeb 使用 jsp 和 javaBean 实现计算器功能
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...
- 第一个Android项目——计算器
第一个Android项目——计算器 效果 开始学Android一两个星期了,学习了一下基本的Activity.简单控件及几个简单布局,打算找个东西来练练手,于是就选择发计算器.关于计算器中用到的四则运 ...
- Android 实现闹钟功能
原文地址:Android 实现闹钟功能作者:Android_Learners 一.手机闹钟主要用到了AlarmManager类,AlarmManager类提供了访问系统定时服务的途径,开发人员可以 ...
- Android Studio调试功能使用总结---转
Android Studio调试功能使用总结[转] 这段时间一直在使用Intellij IDEA, 今天把调试区工具的使用方法记录于此. 先编译好要调试的程序. 1.设置断点 选定要设置断点的代码 ...
- C#实现按键计算器功能
C#实现按键计算器功能 (一次失败的编程) 界面: 代码如下: using System; using System.Collections.Generic; using System.Compone ...
- 集成Android免费语音合成功能(在线、离线、离在线融合)
集成Android免费语音合成功能(在线.离线.离在线融合),有这一篇文章就够了(离线)集成Android免费语音合成功能(在线.离线.离在线融合),有这一篇文章就够了(离在线融合) 转眼间,大半年没 ...
- Python-正则表达式实现计算器功能
需求: 用户输入运算表达式,终端显示计算结果 源代码: # !/usr/bin/env/ python3 # -*- coding: utf-8 -*- """用户输入计 ...
随机推荐
- Combo( 自定义下拉框) 组件
本节课重点了解 EasyUI 中 Combo(自定义下拉框)组件的使用方法,这个组件依赖于ValidateBox(验证框)组件 一. 加载方式自定义下拉框不能通过标签的方式进行创建.<input ...
- Linux命令之文件与用户权限
1.文件管理 在Linux里,任何软件和I/O设备都被视为文件.Linux中的文件名最大支持256个字符,分别可以用A-Z.a-z.0-9等字符来命名. 和Windows不同,Linux中文件是区分大 ...
- css实现垂直居中6种方法
在一次次笔试,一次次的面试中,问到垂直居中的问题太多太多,但是我每一次回答,都好像都不能让面试官太满意,今天特意花点时间,整理一下css垂直居中问题. 1.如果是单行文本.看代码: <!DOCT ...
- 委托与Lambda-浅谈
委托概述 委托是寻址方法的.NET版本. 在C++中,函数指针只不过是一个指向内存位置的指针,它不是类型安全的.我们无法判断这个指针实际指向什么,更不知晓像参数和返回类型等项了. 而.NET委托完全不 ...
- AngularJs练习Demo16 ngRoute
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- displaytag 动态列实现
这种动态列的实现方法来自displaytag-examples-1.2.war提供的示例中,实际上下载下来的zip文件中不仅有各种jar包,还有这个包含各种例子的war包,是学习displaytag的 ...
- java学习笔记(3):java的工作原理及相关基础
一.运行机制 如上图所示,图中内容即为Java的运行机制: 1.我们一开始所编写的代码文件存储格式为(如text.java)文件,这就是源程序文件 2.在Java编辑器的作用下,也就是就行了编译,形成 ...
- ThinkPHP整合百度Ueditor
文章来源:http://www.thinkphp.cn/code/267.html ThinkPHP整合百度Ueditor,基于黄永成老师的视频说明的申明:最好大家都能写绝对路径的都写好绝对路径比如: ...
- ios7中使用scrollview来横向滑动图片,自动产生偏移竖向的偏移 问题
ios7中使用scrollview来横向滑动图片,自动产生偏移竖向的偏移 问题 如图红色为scrollview的背景色,在scrollview上加了图片之后,总会有向下的偏移 设置conten ...
- AFNetworking 2.0 新特性讲解之AFHTTPSessionManager
AFNetworking 2.0 新特性讲解之AFHTTPSessionManager (2014-02-17 11:56:24) 转载▼ AFNetworking 2.0 相比1.0 API ...