吃透Android计算器代码(2)

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;


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


 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值