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实现计算器功能

时间: 2024-12-18 12:33:39

android实现计算器功能的相关文章

集成Android免费语音合成功能(在线、离线、离在线融合)

集成Android免费语音合成功能(在线.离线.离在线融合),有这一篇文章就够了(离线)集成Android免费语音合成功能(在线.离线.离在线融合),有这一篇文章就够了(离在线融合) 转眼间,大半年没写文章了,没什么理由,就是人变懒了.囧~ 看标题,其实大家都被骗了,有这一篇文章还不够,我其实是打算分3篇文章来写的,如果合在一章里面就太长了,不过现在这个标题党横行的网络世界,我也被污染了,哈.那么为什么要分3篇文章来讲呢?看标题也能猜到了,就是在线.离线.离在线融合这3种语音合成方式,我将分别使

通过键盘接收数值和字符,实现计算器功能。

import java.util.Scanner; /** * @author 蓝色以太 * 通过键盘接收数值和字符,实现计算器功能. */ public class Calculator { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请输入第一个数值:"); double num1=sc.nextDouble(); System.out

Android &#39;记住密码&#39;功能

1.运行后界面图 2.主要代码: 2.1 activity_main.xml(2个TextView 2个EditText 1个CheckBox以及1个Button): 1 <TextView 2 android:id="@+id/tvAccount" 3 android:layout_width="wrap_content" 4 android:layout_height="wrap_content" 5 android:layout_al

Shell 实现简单计算器功能

Shell 实现简单计算器功能,脚本如下: [[email protected] scripts]# cat jisuan.sh #!/bin/bash print_usage(){     printf $"USAGE:$0 NUM1 {+|-|*|/} NUM2\n"     exit 1 } #判断传入的参数是不是3个 if [ $# -ne 3 ]   then     print_usage fi firstnum=$1 secondnum=$3 op=$2 #对传入的参数进

erlang-百度云推送Android服务端功能实现-erlang

百度云推送官方地址http://developer.baidu.com/wiki/index.php?title=docs/cplat/push 简单的介绍下原理: 百度云推送支持IOS和Android的云推送.Android支持的还不错,但是IOS一般很难调通.百度云对于IOS的推送来说,他只是做了一个中间的代理,为用户提供接口,优点是使用百度云推送,Android和IOS可以统一管理:缺点是:调通不容易,用户的IOS证书需要上传验证,会直接暴露给第三方,并且IOS的apns支持用户自己构建p

Android微信自动回复功能

Android微信自动回复功能 本文原创,转载请经过本人准许. 写在前面: 最近接到老大的一个需求,要求在手机端拦截微信的通知(Notification),从而获得联系人和内容.之后将联系人和内容发送到我们的硬件产品上,展示出来之后,再将我们想回复内容传给微信,并且发送给相应联系人. 老大还提示我需要用AccessibilityService去实现它,当然在此之前我并不知道AccessibilityService是什么鬼,不过没关系, just do IT ! AccessibilityServ

Android微信分享功能实例+demo

Android微信分享功能实例 1 微信开放平台注册 2 获得appId,添加到程序中,并运行程序 3 使用应用签名apk生成签名,添加到微信开放平台应用签名,完成注册 4 测试分享功能. 有问题请留言  o(∩_∩)o 哈哈 代码如下: package com.wx; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import a

Android 带清除功能的输入框控件ClearEditText,仿IOS的输入框

转载请注明出处http://blog.csdn.net/xiaanming/article/details/11066685 今天给大家带来一个很实用的小控件ClearEditText,就是在Android系统的输入框右边加入一个小图标,点击小图标可以清除输入框里面的内容,IOS上面直接设置某个属性就可以实现这一功能,但是Android原生EditText不具备此功能,所以要想实现这一功能我们需要重写EditText,接下来就带大家来实现这一小小的功能 我们知道,我们可以为我们的输入框在上下左右

完成一段简单的Python程序,用于实现一个简单的加减乘除计算器功能

#!/bin/usr/env python#coding=utf-8'''完成一段简单的Python程序,用于实现一个简单的加减乘除计算器功能'''try: a=int(raw_input("please input a number:"))except ValueError: print("第一个运算数字输入非数字") try: b=int(raw_input("please input another number:"))except Val