Android(安卓)Stdio实现简单计算器
16lz
2022-01-23
因为个人时间有限,算法实现比较简单。
封面:
布局文件activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
逻辑文件MainActivity.java
import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;public class MainActivity extends AppCompatActivity { /* *数字1 * */ Button btn1; /* *数字2 * */ Button btn2; /* *数字3 * */ Button btn3; /* *数字4 * */ Button btn4; /* *数字5 * */ Button btn5; /* *数字6 * */ Button btn6; /* *数字7 * */ Button btn7; /* *数字8 * */ Button btn8; /* *数字9 * */ Button btn9; /* *数字0 * */ Button btn0; /* *+号 * */ Button add; /* *-号 * */ Button sub; /* * *号 * */ Button mul; /* *除号 * */ Button div; /* *小数点 * */ Button dot; /* *=号 * */ Button equ; /* *清除 * */ Button clear; /* *显示结果 * */ EditText result; /* *计算的数字 * */ double num1 = 0, num2 = 0; /* *计算结果 * */ double Result = 0; /* *判断操作符 * */ int op = 0; /* *显示操作符 * */ String opd = ""; private boolean isZero(String str){ if ("0".equals(str)){ return true; }else { return false; } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 获取页面上的控件 btn1 = findViewById(R.id.btn_1); btn2 = findViewById(R.id.btn_2); btn3 = findViewById(R.id.btn_3); btn4 = findViewById(R.id.btn_4); btn5 = findViewById(R.id.btn_5); btn6 = findViewById(R.id.btn_6); btn7 = findViewById(R.id.btn_7); btn8 = findViewById(R.id.btn_8); btn9 = findViewById(R.id.btn_9); btn0 = findViewById(R.id.btn_0); add = findViewById(R.id.btn_add); sub = findViewById(R.id.btn_sub); mul = findViewById(R.id.btn_mul); div = findViewById(R.id.btn_div); equ = findViewById(R.id.btn_equ); dot = findViewById(R.id.btn_dot); clear = findViewById(R.id.btn_clear); result = findViewById(R.id.btn_result); // 按钮的单击事件 btn1.setOnClickListener(new Click()); btn2.setOnClickListener(new Click()); btn3.setOnClickListener(new Click()); btn4.setOnClickListener(new Click()); btn5.setOnClickListener(new Click()); btn6.setOnClickListener(new Click()); btn7.setOnClickListener(new Click()); btn8.setOnClickListener(new Click()); btn9.setOnClickListener(new Click()); btn0.setOnClickListener(new Click()); add.setOnClickListener(new Click()); sub.setOnClickListener(new Click()); mul.setOnClickListener(new Click()); div.setOnClickListener(new Click()); equ.setOnClickListener(new Click()); dot.setOnClickListener(new Click()); clear.setOnClickListener(new Click()); result.setOnClickListener(new Click()); } // 设置按钮点击后的监听 class Click implements View.OnClickListener { public void onClick(View v) { switch (v.getId()) { //switch循环获取点击按钮后的值 case R.id.btn_0: //获取,0-9、小数点,并在编辑框显示 String myString = result.getText().toString(); myString += "0"; result.setText(myString); break; case R.id.btn_1: String myString1 = result.getText().toString(); if (isZero(myString1)){ myString1="1"; }else { myString1 += "1"; } result.setText(myString1); break; case R.id.btn_2: String myString2 = result.getText().toString(); if (isZero(myString2)){ myString2="2"; }else { myString2 += "2"; } result.setText(myString2); break; case R.id.btn_3: String myString3 = result.getText().toString(); if (isZero(myString3)){ myString3="3"; }else { myString3 += "3"; } result.setText(myString3); break; case R.id.btn_4: String myString4 = result.getText().toString(); if (isZero(myString4)){ myString4="4"; }else { myString4 += "4"; } result.setText(myString4); break; case R.id.btn_5: String myString5 = result.getText().toString(); if (isZero(myString5)){ myString5="5"; }else { myString5 += "5"; } result.setText(myString5); break; case R.id.btn_6: String myString6 = result.getText().toString(); if (isZero(myString6)){ myString6="6"; }else { myString6 += "6"; } result.setText(myString6); break; case R.id.btn_7: String myString7 = result.getText().toString(); if (isZero(myString7)){ myString7="7"; }else { myString7 += "7"; } result.setText(myString7); break; case R.id.btn_8: String myString8 = result.getText().toString(); if (isZero(myString8)){ myString8="8"; }else { myString8 += "8"; } result.setText(myString8); break; case R.id.btn_9: String myString9 = result.getText().toString(); if (isZero(myString9)){ myString9="9"; }else { myString9 += "9"; } result.setText(myString9); break; case R.id.btn_dot: String myStringDot = result.getText().toString(); myStringDot += "."; result.setText(myStringDot); break; case R.id.btn_add: //判断,使用加减乘除的操作符 String myStringAdd = result.getText().toString(); if (myStringAdd.equals(null)) { return; } num1 = Double.valueOf(myStringAdd); result.setText(null); op = 1; opd = "+"; break; case R.id.btn_sub: String myStringSub = result.getText().toString(); if (myStringSub.equals(null)) { return; } num1 = Double.valueOf(myStringSub); result.setText(null); op = 2; opd = "-"; break; case R.id.btn_mul: String myStringMul = result.getText().toString(); if (myStringMul.equals(null)) { return; } num1 = Double.valueOf(myStringMul); result.setText(null); op = 3; opd = "×"; break; case R.id.btn_div: String myStringDiv = result.getText().toString(); if (myStringDiv.equals(null)) { return; } num1 = Double.valueOf(myStringDiv); result.setText(null); op = 4; opd = "÷"; break; case R.id.btn_clear: //清除,将编辑框文本显示为空 result.setText(null); break; case R.id.btn_equ: //计算,以操作符为判断,选择所需的运算,并将结果输出 String myStringEqu = result.getText().toString(); if (myStringEqu.equals(null)) { return; } num2 = Double.valueOf(myStringEqu); result.setText(null); switch (op) { case 0: Result = num2; break; case 1: Result = num1 + num2; break; case 2: Result = num1 - num2; break; case 3: Result = num1 * num2; break; case 4: if (num2 == 0) //除法中分子与分母之分 Result = 0; else Result = num1 / num2; break; default: Result = 0; break; } result.setText(String.valueOf(Result)); //将结果完整输出 break; default: break; } } }}
测试运行结果:
乘
等于
更多相关文章
- android实现余额宝收益播报中数字显示动态效果
- 获取Android(安卓)Device的信息
- java android 获取手机操作系统相关信息
- Android(安卓)Service后台处理结果给Activity
- Android中json操作数据的使用
- android操作联系人Contacts
- android 获取局域网内其他手机的ip
- 【Android学习三】相关指令操作
- android的文件操作