android开发【六】(基于android studio3.2)计算器
16lz
2021-12-04
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); }}
更多相关文章
- 代码中设置drawableleft
- android 3.0 隐藏 系统标题栏
- Android开发中activity切换动画的实现
- Android(安卓)学习 笔记_05. 文件下载
- Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
- 技术博客汇总
- android 2.3 wifi (一)
- AndRoid Notification的清空和修改
- Android中的Chronometer