一、简介:用Android Studio 实现一个简单的计算器APP,并在蓝叠模拟器中运行。

该计算器只能实现两位数字的四则运算。

 

二、代码

activity_main.xml   ---界面设计

<?xml version="1.0" encoding="utf-8"?>                 

界面:

MainActivity.java   ---功能实现
public class MainActivity extends AppCompatActivity implements View.OnClickListener {    Button btn0,btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9,            btnClear,btnPlus,btnSubtract,btnMultiply,btnDivide,btnSum,btnPoint;    TextView text;    String str = "";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        btn0 = (Button) findViewById(R.id.btn0);        btn1 = (Button) findViewById(R.id.btn1);        btn2 = (Button) findViewById(R.id.btn2);        btn3 = (Button) findViewById(R.id.btn3);        btn4 = (Button) findViewById(R.id.btn4);        btn5 = (Button) findViewById(R.id.btn5);        btn6 = (Button) findViewById(R.id.btn6);        btn7 = (Button) findViewById(R.id.btn7);        btn8 = (Button) findViewById(R.id.btn8);        btn9 = (Button) findViewById(R.id.btn9);        btnClear = (Button) findViewById(R.id.btnClear);        btnPlus = (Button) findViewById(R.id.btnPlus);        btnSubtract = (Button) findViewById(R.id.btnSubtract);        btnMultiply = (Button) findViewById(R.id.btnMultiply);        btnDivide = (Button) findViewById(R.id.btnDivide);        btnPoint = (Button) findViewById(R.id.btnPoint);        btnSum = (Button) findViewById(R.id.btnSum);        text = (TextView) findViewById(R.id.text) ;        btn0.setOnClickListener(this);        btn1.setOnClickListener(this);        btn2.setOnClickListener(this);        btn3.setOnClickListener(this);        btn4.setOnClickListener(this);        btn5.setOnClickListener(this);        btn6.setOnClickListener(this);        btn7.setOnClickListener(this);        btn8.setOnClickListener(this);        btn9.setOnClickListener(this);        btnClear.setOnClickListener(this);        btnPlus.setOnClickListener(this);        btnSubtract.setOnClickListener(this);        btnMultiply.setOnClickListener(this);        btnDivide.setOnClickListener(this);        btnPoint.setOnClickListener(this);        btnSum.setOnClickListener(new click());    //给所有按钮注册点击事件    }    @Override    public void onClick(View v) {        String input=text.getText().toString();        switch (v.getId()){            case   R.id.btn0:            case   R.id.btn1:            case   R.id.btn2:            case   R.id.btn3:            case   R.id.btn4:            case   R.id.btn5:            case   R.id.btn6:            case   R.id.btn7:            case   R.id.btn8:            case   R.id.btn9:            case   R.id.btnPoint:            text.setText(input+((Button)v).getText());            break;            case R.id.btnPlus:            case R.id.btnSubtract:            case R.id.btnMultiply:            case R.id.btnDivide:            text.setText(input + " " + ((Button)v).getText() + " "); //给运算符前后加空格,好判断            break;            case R.id.btnClear:                text.setText("");                break;        }    }    class click implements View.OnClickListener {        public void onClick (View v) {            getResult();        }    }    private void getResult () {        String str1 = text.getText().toString();        if(str1 == null || str1.equals("")){            return;        }        if(!str1.contains(" ")){            return ;        }        double result = 0;//        第一个数的字符串        String s1 = str1.substring(0,str1.indexOf(" "));//        运算符        String op = str1.substring(str1.indexOf(" ")+1,str1.indexOf(" ")+2);//        第二个数的字符串        String s2 = str1.substring(str1.indexOf(" ")+3);            double d1 = Double.parseDouble(s1);//将数字字符串转为double类型            double d2 = Double.parseDouble(s2);            if (op.equals("+")) {   //加法运算                result = d1 + d2;            } else if (op.equals("-")) {   //减法运算                result = d1 - d2;            } else if (op.equals("*")) {   //乘法运算                result = d1 * d2;            } else if (op.equals("/")) {   //除法运算                if (d2 == 0) { //如果被除数是0                    result = 0; //则结果是0                }                else {                    result = d1 / d2;                }            }            text.setText(str1 + " = " + result); //显示计算结果            if (!s1.contains(".") && !s2.contains(".") && !op.equals("/")) {//如果两个整数且不是出发运算                int r = (int) result;  //则结果转为整数                text.setText(str1 + " = " + r );            }    }}

 

三、运行测试

 

测试结果:

    1.可以计算简单两位数的四则运算,但是如果计算超过2位数的运算,则会出现异常使程序退出。

    2.四则运算中,结果可以为负数,但是运算数若为负数,则会出现异常,原因是该程序公式为【数字1 + 运算符 +数字二】,若输入负数,即多出一位运算符,则会抛出异常。

 

四、总结

     总的来说,这个计算器确实十分简单,功能也不完善,还有很多小bug,但是对于刚入门的菜鸟来说,也用了不少的时间。希望自己能更加努力地坚持学习下去!

更多相关文章

  1. 记录app端嵌入式H5页面
  2. Android开发之侧拉栏的使用
  3. Android下实现tab页个人比较推崇的方法
  4. Android中应该注意的细节
  5. Android中对话框(Dialog)的创建方法
  6. Android通过访问网页查看网页源码实例详解
  7. Android(安卓)Studio finish()方法的使用与解决app点击“返回”,
  8. Android(安卓)webService访问实例
  9. Android交互对话框

随机推荐

  1. android拍照上传的效果是如何实现的
  2. Android开发问题 - Some projects cannot
  3. Android(安卓)生成不同服务器配置,不同APP
  4. Android 异常处理:java.lang.IllegalArgum
  5. JNI之------C调用java接口
  6. 查询遇到双引号
  7. Android(安卓)Studio进行APP图标更改的两
  8. 发送和拦截短信
  9. [Google Android] GCM: Getting Started
  10. 整理文:Android设备唯一码