安卓计算器

自己写的安卓的计算器:
注:这个是在mac中开发的,如果要在windows的eclipse中运行可能会出现路径问题,解决办法从windows中已有的安卓工程根目录下复制一下classpath文件,然后复制粘贴覆盖掉这个工程根目录里面的路径文件,再导入工程应该就可以打开了。
安卓计算器Android <wbr>calculator



package com.example.calculator;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener{
	//按钮
	Button btn_1,btn_2,btn_3,
		   btn_4,btn_5,btn_6,
		   btn_7,btn_8,btn_9,
		   btn_10,btn_11,btn_12,
		   btn_13,btn_14,btn_15,
		   btn_16,btn_17,btn_18,
		   btn_19,btn_20,btn_21,btn_22;
	//用于判断是否需要重新输入
	boolean restart;
	//屏幕上数字的正负状态
	int front;
	//操作数与操作符
	float operator1,operator2;
	int symbol;//jre1.6不支持switch(字符串)
	//"+、—、*、/、x^y、/x、sinx、cosx"-->1、2、3、4、5、6、7、8
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		//初始化操作数(默认为0)操作符(默认为+)
		operator1=0;
		operator2=0;
		restart=true;
		front=0;//默认为正数
		TextView txt=(TextView) findViewById(R.id.textView1);
		txt.setText("00");
		//获取button对象
		btn_1= (Button)findViewById(R.id.button1);
		btn_2= (Button)findViewById(R.id.button2);
		btn_3= (Button)findViewById(R.id.button3);
		btn_4= (Button)findViewById(R.id.button4);
		btn_5= (Button)findViewById(R.id.button5);
		btn_6= (Button)findViewById(R.id.button6);
		btn_7= (Button)findViewById(R.id.button7);
		btn_8= (Button)findViewById(R.id.button8);
		btn_9= (Button)findViewById(R.id.button9);
		btn_10= (Button)findViewById(R.id.button10);
		btn_11= (Button)findViewById(R.id.button11);
		btn_12= (Button)findViewById(R.id.button12);
		btn_13= (Button)findViewById(R.id.button13);
		btn_14= (Button)findViewById(R.id.button14);
		btn_15= (Button)findViewById(R.id.button15);
		btn_16= (Button)findViewById(R.id.button16);
		btn_17= (Button)findViewById(R.id.button17);
		btn_18= (Button)findViewById(R.id.button18);
		btn_19= (Button)findViewById(R.id.button19);
		btn_20= (Button)findViewById(R.id.button20);
		btn_21= (Button)findViewById(R.id.button21);
		btn_22= (Button)findViewById(R.id.button22);
		//注册点击事件
		btn_1.setOnClickListener(this);
		btn_2.setOnClickListener(this);
		btn_3.setOnClickListener(this);
		btn_4.setOnClickListener(this);
		btn_5.setOnClickListener(this);
		btn_6.setOnClickListener(this);
		btn_7.setOnClickListener(this);
		btn_8.setOnClickListener(this);
		btn_9.setOnClickListener(this);
		btn_10.setOnClickListener(this);
		btn_11.setOnClickListener(this);
		btn_12.setOnClickListener(this);
		btn_13.setOnClickListener(this);
		btn_14.setOnClickListener(this);
		btn_15.setOnClickListener(this);
		btn_16.setOnClickListener(this);
		btn_17.setOnClickListener(this);
		btn_18.setOnClickListener(this);
		btn_19.setOnClickListener(this);
		btn_20.setOnClickListener(this);
		btn_21.setOnClickListener(this);
		btn_22.setOnClickListener(this);
	}
	@Override
	//点击事件处理
	public void onClick(View btn) {	
		//获取文本框
		TextView txt=(TextView) findViewById(R.id.textView1);
		//文本框内容
		String text=(String) txt.getText();
		float value=Float.parseFloat(text);
		System.out.println(value);
		switch(btn.getId()){
		//数字
		case R.id.button1:
			if(restart){
				txt.setText("1");
				restart=false;}
			else
			txt.setText(text+"1");
			break;
		case R.id.button2:
			if(restart){
				txt.setText("2");
				restart=false;}
			else
			txt.setText(text+"2");
			break;
		case R.id.button3:
			if(restart){
				txt.setText("3");
				restart=false;}
			else
			txt.setText(text+"3");
			break;
		case R.id.button4:
			if(restart){
				txt.setText("4");
				restart=false;}
			else
			txt.setText(text+"4");
			break;
		case R.id.button5:
			if(restart){
				txt.setText("5");
				restart=false;}
			else
			txt.setText(text+"5");
			break;
		case R.id.button6:
			if(restart){
				txt.setText("6");
				restart=false;}
			else
			txt.setText(text+"6");
			break;
		case R.id.button7:
			if(restart){
				txt.setText("7");
				restart=false;}
			else
			txt.setText(text+"7");
			break;
		case R.id.button8:
			if(restart){
				txt.setText("8");
				restart=false;}
			else
			txt.setText(text+"8");
			break;
		case R.id.button9:
			if(restart){
				txt.setText("9");
				restart=false;}
			else
			txt.setText(text+"9");
			break;
		case R.id.button10:
			if(restart)
				txt.setText("00");
			else
			txt.setText(text+"0");
			break;
			//+
		case R.id.button11:
			symbol=1;
			operator1=value;
			restart=true;
			break;
			//-
		case R.id.button12:
			symbol=2;
			operator1=value;
			restart=true;
			break;
			//-/+
		case R.id.button13:
			if(restart){
				txt.setText("-");
				front=1;}
			else if(front==0){
				txt.setText("-"+text);
				front=1;}
			else if(front==1){
				txt.setText(text.substring(1));
				front=0;
			}
			break;
			//*
		case R.id.button14:
			symbol=3;
			operator1=value;
			restart=true;
			break;
			// /
		case R.id.button15:
			symbol=4;
			operator1=value;
			restart=true;
			break;
			//C
		case R.id.button16:
			txt.setText("00");
			restart=true;
			break;
			// .
		case R.id.button17:
			if(restart)
				txt.setText(".");
			else
			txt.setText(text+".");
			restart=false;
			break;
			//=
		case R.id.button18:
			restart=true;
			switch(symbol){
			case 1:
				txt.setText(String.valueOf(operator1+value));
				break;
			case 2:
				txt.setText(String.valueOf(operator1-value));
				break;
			case 3:
				txt.setText(String.valueOf(operator1*value));
				break;
			case 4:
				txt.setText(String.valueOf(operator1/value));
				break;
			case 5:
				txt.setText(String.valueOf(Math.pow(operator1, value)));
				break;
			}
			break;
			//x^y
		case R.id.button19:
			symbol=5;
			operator1=value;
			restart=true;
			break;
			// /x
		case R.id.button20:
			symbol=6;
			txt.setText(String.valueOf(Math.sqrt(value)));
			restart=true;
			break;
			// sinx
		case R.id.button21:
			symbol=7;
			txt.setText(String.valueOf(Math.sin(value)));
			restart=true;
			break;
			// cosx
		case R.id.button22:
			symbol=8;
			txt.setText(String.valueOf(Math.cos(value)));
			restart=true;
			break;
			
			default:
				break;
		}
	}

}





评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr_厚厚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值