一、简介:用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客户端从服务器端下载文件,服务端
  3. Android防止按钮连续点击
  4. android 跳转到应用通知设置界面【Androi
  5. 列出手机中所有的App,点击启动
  6. Android中实现计时器的功能
  7. Android(安卓)软键盘问题总结
  8. Android学习笔记之mainfest文件中android
  9. cocos2d-x之JS中的Android按键监听
  10. Android系统定制源码修改 - MTK平台