吃透Android计算器代码(2)

来源:互联网 发布:js跳转页面 开新窗口 编辑:程序博客网 时间:2024/06/05 07:16

111

逻辑部分2:

*1:onClick(View   巴拉巴拉)


    @Override    public void onClick(View view){        switch (view.getId()){            //C & CE            case  R.id.buttonC:                String myStr=textView.getText().toString();                try{                    textView.setText(myStr.substring(0,myStr.length()-1));                }catch (Exception e){                    textView.setText("");                }                break;            case R.id.buttonCE:                textView.setText(null);                break;            //0~9            case R.id.button0:                if(isClickEqu)                {                    textView.setText(null);                    isClickEqu=false;                }                String myString=textView.getText().toString();                myString+="0";                textView.setText(myString);                break;            case R.id.button1:                if(isClickEqu)                {                    textView.setText(null);                    isClickEqu=false;                }                String myString1=textView.getText().toString();                myString1+="1";                textView.setText(myString1);                break;            case R.id.button2:                if(isClickEqu)                {                    textView.setText(null);                    isClickEqu=false;                }                String myString2=textView.getText().toString();                myString2+="2";                textView.setText(myString2);                break;            case R.id.button3:                if(isClickEqu)                {                    textView.setText(null);                    isClickEqu=false;                }                String myString3=textView.getText().toString();                myString3+="3";                textView.setText(myString3);                break;            case R.id.button4:                if(isClickEqu)                {                    textView.setText(null);                    isClickEqu=false;                }                String myString4=textView.getText().toString();                myString4+="4";                textView.setText(myString4);                break;            case R.id.button5:                if(isClickEqu)                {                    textView.setText(null);                    isClickEqu=false;                }                String myString5=textView.getText().toString();                myString5+="5";                textView.setText(myString5);                break;            case R.id.button6:                if(isClickEqu)                {                    textView.setText(null);                    isClickEqu=false;                }                String myString6=textView.getText().toString();                myString6+="6";                textView.setText(myString6);                break;            case R.id.button7:                if(isClickEqu)                {                    textView.setText(null);                    isClickEqu=false;                }                String myString7=textView.getText().toString();                myString7+="7";                textView.setText(myString7);                break;            case R.id.button8:                if(isClickEqu)                {                    textView.setText(null);                    isClickEqu=false;                }                String myString8=textView.getText().toString();                myString8+="8";                textView.setText(myString8);                break;            case R.id.button9:                if(isClickEqu)                {                    textView.setText(null);                    isClickEqu=false;                }                String myString9=textView.getText().toString();                myString9+="9";                textView.setText(myString9);                break;            //+ - * / =            case R.id.buttonJIA:                String myStringJIA=textView.getText().toString();                if(myStringJIA.equals(null))                {                    return;                }                num1=Double.valueOf(myStringJIA);                textView.setText(null);                op=1;                isClickEqu=false;                break;            case R.id.buttonJIAN:                String myStringJIAN=textView.getText().toString();                if(myStringJIAN.equals(null))                {                    return;                }                num1=Double.valueOf(myStringJIAN);                textView.setText(null);                op=2;                isClickEqu=false;                break;            case R.id.buttonCHENG:                String myStringCHEN=textView.getText().toString();                if(myStringCHEN.equals(null))                {                    return;                }                num1=Double.valueOf(myStringCHEN);                textView.setText(null);                op=3;                isClickEqu=false;                break;            case R.id.buttonCHU:                String myStringCHU=textView.getText().toString();                if(myStringCHU.equals(null))                {                    return;                }                num1=Double.valueOf(myStringCHU);                textView.setText(null);                op=4;                isClickEqu=false;                break;            case R.id.buttonDENGYU:                String myStringDENGYU=textView.getText().toString();                if(myStringDENGYU.equals(null))                {                    return;                }                num2=Double.valueOf(myStringDENGYU);                textView.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:                        Result=num1/num2;                        break;                    default:                        Result=0;                        break;                }                textView.setText(String.valueOf(Result));                isClickEqu=true;                break;            default:                break;        }    }}


这段代码 使用了 switch case结构 case对应了计算器的每个按钮功能 把这些按钮的功能一一对应。

C功能;用try catch处理异常 可以说是这么写是比较逻辑缜密的写法

try{    textView.setText(myStr.substring(0,myStr.length()-1));}catch (Exception e){    textView.setText("");}
关于substring函数的解释(就是获取长度)

sb.Substring(0, sb.Length - 1);这个是截取字符串的方法,后面第一个参数0代表,从字符串的第一个字符开始截取,后面一个参数sb.Length - 1代表截取的字符串长度,也就是从第一个字符截取到最后一个字符前一位。

 0~9功能:


比较在意的是.getText().tostring的用法 在网上查的解释在这里

android里.getText().tostring()怎么用

最佳答案:
这个方法是获取一个视图View对象里的字符串的方法的,比如你要验证一个Edittext里输入的是不是纯数字,就用这个方法来获取输入的字符串,然后进行验证

setText() 的作用


 


Android中 setText()和append()方法区别在哪里? 

setText()  把以前的内容冲掉了,
append()在以前的内容后面添加。
这个区别应该很好理解。
如果原来字域的内容为空,则这两个方法的作用一样。
  String myString=textView.getText().toString();                myString+="0";                textView.setText(myString);                break;


总体来说根据代码套路就是这样的
用上述代码在一个文本框里加入文字


 
原创粉丝点击