package com.example.calculator;import android.app.Activity;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;import java.text.NumberFormat;public class MainActivity extends Activity {    double firstNum = 0;    char currentSign = '+';    StringBuffer currentNum = new StringBuffer();    boolean isFirstPoint = false;    TextView txtResult;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        txtResult = (TextView) findViewById(R.id.txtResult);    }    public void init() {        currentNum.delete(0, currentNum.length());        isFirstPoint = false;    }    public double stringToDouble() {        if (currentNum.length() == 0) {            return 0;        }        double result = Double.parseDouble(currentNum.toString());        return result;    }    public double calcu() {        double result = 0;        switch (currentSign) {            case '+':                result = firstNum + stringToDouble();                break;            case '-':                result = firstNum - stringToDouble();                break;            case '*':                result = firstNum * stringToDouble();                break;            case '/':                result = firstNum / stringToDouble();                break;        }        NumberFormat format = NumberFormat.getInstance();        format.setMaximumFractionDigits(2);        result = Double.parseDouble(format.format(result));        return result;    }    public void display(){        txtResult.setText(currentNum.toString());    }    public void digital_click(View view){        Button btnDigital = (Button)view;        char text = btnDigital.getText().charAt(0);        currentNum.append(text);        display();    }    public void add(View view){        double result = calcu();        txtResult.setText(String.valueOf(result));        firstNum=result;        currentSign='+';        init();    }    public void sub(View view){        double result = calcu();        txtResult.setText(String.valueOf(result));        firstNum=result;        currentSign='-';        init();    }    public void mul(View view){        double result = calcu();        txtResult.setText(String.valueOf(result));        firstNum=result;        currentSign='*';        init();    }    public void div(View view){        double result = calcu();        txtResult.setText(String.valueOf(result));        firstNum=result;        currentSign='/';        init();    }    public void equ(View view){        double result = calcu();        txtResult.setText(String.valueOf(result));        firstNum=result;        currentSign='+';        init();    }    public void point_click(View view){        if(isFirstPoint){            return;        }        if(currentNum.length()==0){            return;        }        Button btnPoint=(Button)view;        char text = btnPoint.getText().charAt(0);        isFirstPoint=true;        display();    }    public void del(View view){        if(currentNum.length()>=1){            currentNum.delete(currentNum.length()-1,currentNum.length());        }        if(currentNum.length()==0){            init();            display();        }        txtResult.setText(currentNum);    }}

 

 

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. onStartCommand 的返回值
  2. Android中cursor.getInt()返回值的坑
  3. Android待机状态更新
  4. Android(安卓)通过系统使用NotificationL
  5. Android(安卓)opencore编译问题总结
  6. Android(安卓)自定义Toast显示图片
  7. android之应用程序LED
  8. Android(安卓)2.0新增类ExifInterface使
  9. 利用UltimateAndroid快速开发(一):配置篇
  10. Android学习 之 活动与任务