因为个人时间有限,算法实现比较简单。

封面:

布局文件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;            }        }    }}

 

测试运行结果:

等于

更多相关文章

  1. android实现余额宝收益播报中数字显示动态效果
  2. 获取Android(安卓)Device的信息
  3. java android 获取手机操作系统相关信息
  4. Android(安卓)Service后台处理结果给Activity
  5. Android中json操作数据的使用
  6. android操作联系人Contacts
  7. android 获取局域网内其他手机的ip
  8. 【Android学习三】相关指令操作
  9. android的文件操作

随机推荐

  1. 如何获取多媒体文件
  2. Xml解析之----Pull
  3. Android(1.5) 开机图片/文字/动画 修改
  4. Content provider的详解及使用
  5. 下载频道2013年超人气精华资源汇总---全
  6. Android(安卓)Animation---总揽
  7. tcpdump for Android(抓TCP数据包工具)
  8. 开箱即用!Android四款系统架构工具
  9. android 防止背景图片被拉伸 背景图片平
  10. RAD DELPHI XE5的android开发环境配置