这个程序是在别人的程序基础上修改而成。有一个bug调了一天才调出来。汗!

下载地址:http://download.csdn.net/detail/hong0220/4675631


package com.calculator;import java.util.ArrayList;import android.app.Activity;import android.os.Bundle;import android.widget.*;import android.view.*;import android.view.View.OnClickListener;public class Calculator extends Activity {//创建控件的引用private EditText result;private Button delete;private Button clear;private Button one;private Button two;private Button three;private Button four;private Button five;private Button six;private Button seven;private Button eight;private Button nine;private Button zero;private Button division;private Button multiply;private Button subtract;private Button addition;private Button amount;@Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        //取得控件的实例        result = (EditText)findViewById(R.id.result);        delete = (Button)findViewById(R.id.delete);        clear = (Button)findViewById(R.id.clear);        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);        division = (Button)findViewById(R.id.division);        multiply = (Button)findViewById(R.id.multiply);        subtract = (Button)findViewById(R.id.subtract);        addition = (Button)findViewById(R.id.addition);        amount = (Button)findViewById(R.id.amount);        //定义按键的监听器        clear.setOnClickListener(new clearClickListener());        delete.setOnClickListener(new deleteClickListener());        one.setOnClickListener(new oneClickListener());        two.setOnClickListener(new twoClickListener());        three.setOnClickListener(new threeClickListener());        four.setOnClickListener(new fourClickListener());        five.setOnClickListener(new fiveClickListener());        six.setOnClickListener(new sixClickListener());        seven.setOnClickListener(new sevenClickListener());        eight.setOnClickListener(new eightClickListener());        nine.setOnClickListener(new nineClickListener());        zero.setOnClickListener(new zeroClickListener());        division.setOnClickListener(new divisionClickListener());        multiply.setOnClickListener(new multiplyClickListener());        subtract.setOnClickListener(new subtractClickListener());        addition.setOnClickListener(new additionClickListener());        amount.setOnClickListener(new amountClickListener());    }class clearClickListener implements OnClickListener{public void onClick(View v) {result.setText("");}}class deleteClickListener implements OnClickListener{public void onClick(View v) {String str = result.getText().toString();if(str.length()>=1){result.setText(str.substring(0, str.length()-1));}}}class oneClickListener implements OnClickListener{public void onClick(View v) {String str = result.getText().toString();result.setText(str+1);}}class twoClickListener implements OnClickListener{public void onClick(View v) {String str = result.getText().toString();result.setText(str+2);}}class threeClickListener implements OnClickListener{public void onClick(View v) {String str = result.getText().toString();result.setText(str+3);}}class fourClickListener implements OnClickListener{public void onClick(View v) {String str = result.getText().toString();result.setText(str+4);}}class fiveClickListener implements OnClickListener{public void onClick(View v) {String str = result.getText().toString();result.setText(str+5);}}class sixClickListener implements OnClickListener{public void onClick(View v) {String str = result.getText().toString();result.setText(str+6);}}class sevenClickListener implements OnClickListener{public void onClick(View v) {String str = result.getText().toString();result.setText(str+7);}}class eightClickListener implements OnClickListener{public void onClick(View v) {String str = result.getText().toString();result.setText(str+8);}}class nineClickListener implements OnClickListener{public void onClick(View v) {String str = result.getText().toString();result.setText(str+9);}}class zeroClickListener implements OnClickListener{public void onClick(View v) {String str = result.getText().toString();result.setText(str+0);}}class divisionClickListener implements OnClickListener{public void onClick(View v) {String str = result.getText().toString();char ch = str.charAt(str.length()-1);if(ch != '+' && ch != '-' && ch != '/' && ch != '*'){result.setText(str+"/");}else{result.setText(str.substring(0, str.length()-1)+"/");}}}class multiplyClickListener implements OnClickListener{public void onClick(View v) {String str = result.getText().toString();char ch = str.charAt(str.length()-1);if(ch != '+' && ch != '-' && ch != '/' && ch != '*'){result.setText(str+"*");}else{result.setText(str.substring(0, str.length()-1)+"*");}}}class subtractClickListener implements OnClickListener{public void onClick(View v) {String str = result.getText().toString();char ch = str.charAt(str.length()-1);if(ch != '+' && ch != '-' && ch != '/' && ch != '*'){result.setText(str+"-");}else{result.setText(str.substring(0, str.length()-1)+"-");}}}class additionClickListener implements OnClickListener{public void onClick(View v) {String str = result.getText().toString();char ch = str.charAt(str.length()-1);if(ch != '+' && ch != '-' && ch != '/' && ch != '*'){result.setText(str+"+");}else{result.setText(str.substring(0, str.length()-1)+"+");}}}class amountClickListener implements OnClickListener{public void onClick(View v) {int now = 100;int index = 1;int[] operator = new int[10];operator[0] = 0;double a = 0;double b = 0;ArrayList<Double> numArray = new ArrayList<Double>(); String str = result.getText().toString();StringBuffer bsNum = new StringBuffer();StringBuffer bsOper = new StringBuffer();String ss[]=new String[100];int t=0;for(int i=0; i<str.length(); i++){if(str.charAt(i) >= 48 && str.charAt(i) <= 57)bsNum.append(str.charAt(i));else if(str.charAt(i)== '+' || str.charAt(i)== '-' || str.charAt(i)== '*' || str.charAt(i)== '/'){ss[t]=bsNum.toString();t++;int sum=bsNum.length();bsNum.delete(0, sum);if(bsOper.toString().equals("")){bsOper.append(str.charAt(i));switch(str.charAt(i)){case '+':now = 1;break;case '-':now = 1;break;case '*':now = 2;break;case '/':now = 2;break;default:break;}operator[index] = now;index++;}else{switch(str.charAt(i)){case '+':now = 1;break;case '-':now = 1;break;case '*':now = 2;break;case '/':now = 2;break;default:break;}while(now <= operator[index - 1]){bsNum.append(bsOper.charAt(bsOper.length()-1));ss[t]=bsNum.toString();t++;sum=bsNum.length();bsNum.delete(0, sum);bsOper.deleteCharAt(bsOper.length()-1);index--;}bsOper.append(str.charAt(i));operator[index] = now;index++;}}System.out.println("bsNum  : "+bsNum);System.out.println("bsOper  : "+bsOper);}ss[t]=bsNum.toString();t++;int sum=bsNum.length();bsNum.delete(0, sum);while(!bsOper.toString().equals("")){bsNum.append(bsOper.charAt(bsOper.length()-1));ss[t]=bsNum.toString();t++;sum=bsNum.length();bsNum.delete(0, sum);bsOper.deleteCharAt(bsOper.length()-1);}System.out.println("bsNum  : "+bsNum);System.out.println("bsOper  : "+bsOper);System.out.println("hello world!");for(int i=0;i<t;i++)System.out.println(ss[i]);for(int i=0; i<t; i++){if(ss[i].equals("+")){a = numArray.get(numArray.size()-1);b = numArray.get(numArray.size()-2);numArray.remove(numArray.size()-1);numArray.remove(numArray.size()-1);System.out.println(a+" "+b);numArray.add(Double.valueOf(b+a));}else if(ss[i].equals("-")){a = numArray.get(numArray.size()-1);b = numArray.get(numArray.size()-2);numArray.remove(numArray.size()-1);numArray.remove(numArray.size()-1);System.out.println(a+" "+b);numArray.add(Double.valueOf(b-a));}else if(ss[i].equals("*")){a = numArray.get(numArray.size()-1);b = numArray.get(numArray.size()-2);numArray.remove(numArray.size()-1);numArray.remove(numArray.size()-1);System.out.println(a+" "+b);numArray.add(Double.valueOf(b*a));}else if(ss[i].equals("/")){a = numArray.get(numArray.size()-1);b = numArray.get(numArray.size()-2);numArray.remove(numArray.size()-1);numArray.remove(numArray.size()-1);System.out.println(a+" "+b);numArray.add(Double.valueOf(b/a));}elsenumArray.add(Double.parseDouble(ss[i]));}System.out.println("result  : "+numArray.get(0).doubleValue());String s = String.valueOf(numArray.get(0).doubleValue());result.setText(String.valueOf(s));}}}


更多相关文章

  1. [置顶] Android学习系列-单元测试与程序调试(5)
  2. Android应用程序全屏显示
  3. Android——按两次返回键退出程序
  4. Android中FloatingActionButton实现悬浮按钮实例
  5. Android(安卓)ConstraintLayout 降低布局层次,布局优化首选
  6. android中退出整个app应用程序
  7. Android全屏(包含3种隐藏顶部状态栏及标题栏和一种隐藏Android(安
  8. android系统移植琐碎知识整理:
  9. Android按钮实现点击事件的四种方式

随机推荐

  1. Building TensorFlow on Android
  2. 启动qt_Qt编程实例:基于Android的BLE通信
  3. 【Android】debug 状态下其签名文件 debu
  4. Android控件抖动效果
  5. Android热修复框架AndFix核心代码分析并
  6. 【安卓】关于 Android(安卓)默认字体以及
  7. Andriod ADB Interface驱动安装失败Confi
  8. Android的消息机制
  9. 绿色守护简单使用教程
  10. Android(安卓)IPC(进程间通信)