安卓计算器编写练习

前言

安卓作业,只能实现两个数的运算,比较简单。

在UI那块

我采用的是书本上的界面,与书本一致

在app/src/main/res/layout/中的activity_main.xml中的部分代码

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_columnSpan="4"
        android:layout_marginLeft="4px"
        android:gravity="left"
        android:text="0"
        android:textSize="50dip"
        android:id="@+id/txt"
        />

    <Button
        android:id="@+id/btn_clear"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_columnSpan="4"
        android:text="清除"
        android:textSize="26sp"
        />
    <Button android:text="1" android:textSize="26sp"  android:id="@+id/btn1"  android:onClick="onBtn1"/>
    <Button android:text="2" android:textSize="26sp"  android:id="@+id/btn2"  android:onClick="onBtn2"/>
    <Button android:text="3" android:textSize="26sp"  android:id="@+id/btn3"  android:onClick="onBtn3"/>
    <Button android:text="+" android:textSize="26sp"  android:id="@+id/btnadd"  android:onClick="onBtnadd"/>
    <Button android:text="4" android:textSize="26sp"  android:id="@+id/btn4"   android:onClick="onBtn4"/>
    <Button android:text="5" android:textSize="26sp"  android:id="@+id/btn5"   android:onClick="onBtn5"/>
    <Button android:text="6" android:textSize="26sp"  android:id="@+id/btn6"  android:onClick="onBtn6"/>
    <Button android:text="-" android:textSize="26sp"  android:id="@+id/btnmin"  android:onClick="onBtnmin"/>
    <Button android:text="7" android:textSize="26sp"  android:id="@+id/btn7"   android:onClick="onBtn7"/>
    <Button android:text="8" android:textSize="26sp"  android:id="@+id/btn8"   android:onClick="onBtn8"/>
    <Button android:text="9" android:textSize="26sp"  android:id="@+id/btn9"   android:onClick="onBtn9"/>
    <Button android:text="*" android:textSize="26sp"  android:id="@+id/btnmul"  android:onClick="onBtnmul"/>
    <Button android:text="." android:textSize="26sp"  android:id="@+id/btnpoint"  android:onClick="onBtnpoint"/>
    <Button android:text="0" android:textSize="26sp"  android:id="@+id/btn0"  android:onClick="onBtn0"/>
    <Button android:text="=" android:textSize="26sp"  android:id="@+id/btncon"  android:onClick="onBtncon"/>
    <Button android:text="/" android:textSize="26sp"  android:id="@+id/btndiv"  android:onClick="onBtndiv"/>

逻辑代码
1.在主体部分 
思路:就是 按照按钮点击事件的套路,每当点击按钮时,就会执行onClick()的方法,我们在这个方法里加入个switch循环,每个case:是按钮的id,我们申请个private StringBuilder的字符串。每按一个按钮,只要满足要求,不是错误的输入,就调用append()方法,将按钮的值当字符存入这个字符串中,当用户按到等号时,调用另一个java文件的自己写的处理的类(想都写在mainActivity也行啊,不过太长了)。 
下面是主体代码 
在app/src/main/java/com/liliandriod/mycalculator/MainActivity中的主要代码

//与用户界面程序中的组件建立关联
        ClearBtn =(Button)findViewById(R.id.btn_clear);
        OneBtn =(Button) findViewById(R.id.btn1);
        TwoBtn =(Button) findViewById(R.id.btn2);
        ThreeBtn =(Button)findViewById(R.id.btn3);
        FourBtn =(Button) findViewById(R.id.btn4);
        FiveBtn =(Button)findViewById(R.id.btn5);
        SixBtn =(Button)findViewById(R.id.btn6);
        SevenBtn =(Button)findViewById(R.id.btn7);
        EightBtn =(Button)findViewById(R.id.btn8);
        NineBtn =(Button)findViewById(R.id.btn9);
        ZeroBtn =(Button)findViewById(R.id.btn0);
        PointBtn =(Button)findViewById(R.id.btnpoint);
        AddBtn =(Button)findViewById(R.id.btnadd);
        MinBtn =(Button)findViewById(R.id.btnmin);
        MulBtn =(Button)findViewById(R.id.btnmul);
        DivBtn =(Button)findViewById(R.id.btndiv);
        ConBtn =(Button)findViewById(R.id.btncon);
        txt=(TextView)findViewById(R.id.txt);

        //clear按键事件
    ClearBtn.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            str1="";
            str2="";
            result=0;
            index=0;
            txt.setText("0");

        }
    });
//按键1
OneBtn.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            if(index !=1){//判断是否为第一个数字
                str1="1";
                txt.setText("1");
                index=1;
            }else {//1 不是第一个数字
                str2="1";
                txt.setText("1");
            }
        }
    });
//根据type选择加减乘除 1,2,3,4加减乘除
        ConBtn.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                if(type==1){
                    System.out.println("str1:" +str1+"str2:"+str2);
                    result=Integer.parseInt(str2)+Integer.parseInt(str1);
                    String a=String.valueOf(result);
                    txt.setText(a);
                }
                if(type==2){
                    System.out.println("str1"+str1+"  str2"+str2);
                    result=Integer.parseInt(str2)-Integer.parseInt(str1);
                    String a=String.valueOf(result);
                    txt.setText(a);
                }
                if(type==3){
                    System.out.println("str1:" +str1+"str2:"+str2);
                    result=Integer.parseInt(str2)*Integer.parseInt(str1);
                    String a=String.valueOf(result);
                    txt.setText(a);
                }
                if(type==4){
                    System.out.println("str1"+str1+"  str2"+str2);
                    result=Integer.parseInt(str2)/Integer.parseInt(str1);
                    String a=String.valueOf(result);
                    txt.setText(a);
                }
            }

        });

成果展示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值