calculator

mainActivity

package com.example.administrator.calculater;

import android.renderscript.Double2;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.app.Activity;
import android.widget.TextView;
import android.widget.Button;

public class MainActivity extends Activity implements View.OnClickListener
{
    //声明控件
    Button btn1=null;
    Button btn2=null;
    Button btn3=null;
    Button btn4=null;
    Button btn5=null;
    Button btn6=null;
    Button btn7=null;
    Button btn8=null;
    Button btn9=null;
    Button btn0=null;
    Button btnAdd=null;
    Button btnSub=null;
    Button btnMul=null;
    Button btnDiv=null;
    Button btnEql=null;
    Button btnCE=null;
    Button btnPoint=null;
    Button btnBack=null;
    TextView tvResult=null;
    //声明操作数
    double num1=0, num2=0;
    //声明结果变量
    double result=0;
    //声明操作符
    int op=0;
    //判断是否点击等号
    boolean isEqual=false;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout);

        //从布局文件获取控件
        btn0=(Button)findViewById(R.id.button0);
        btn1=(Button)findViewById(R.id.button1);
        btn2=(Button)findViewById(R.id.button2);
        btn3=(Button)findViewById(R.id.button3);
        btn4=(Button)findViewById(R.id.button4);
        btn5=(Button)findViewById(R.id.button5);
        btn6=(Button)findViewById(R.id.button6);
        btn7=(Button)findViewById(R.id.button7);
        btn8=(Button)findViewById(R.id.button8);
        btn9=(Button)findViewById(R.id.button9);
        btnAdd=(Button)findViewById(R.id.buttonAdd);
        btnBack=(Button)findViewById(R.id.buttonBackspace);
        btnCE=(Button)findViewById(R.id.buttonCE);
        btnDiv=(Button)findViewById(R.id.buttonDiv);
        btnMul=(Button)findViewById(R.id.buttonMul);
        btnEql=(Button)findViewById(R.id.buttonEql);
        btnPoint=(Button)findViewById(R.id.buttonPoint);
        btnSub=(Button)findViewById(R.id.buttonSub);
        tvResult=(TextView)findViewById(R.id.editText);//editview是textview的一种

        //添加监听
        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);
        btnAdd.setOnClickListener(this);
        btnBack.setOnClickListener(this);
        btnSub.setOnClickListener(this);
        btnMul.setOnClickListener(this);
        btnDiv.setOnClickListener(this);
        btnPoint.setOnClickListener(this);
        btnEql.setOnClickListener(this);
        btnCE.setOnClickListener(this);


    }
    @Override//这是个重载函数,就是说,他已经封装好了
    //
    public void onClick(View view)
    {
        switch (view.getId())
        {
            //我问你is
            case R.id.button0:
                //要判断一下是不是第一个操作数,如果是第一个操作数,就是已经嗯过=号了,就把变成空的,重新开始,这个时候已经嗯过等号了,
                if(isEqual)//isEqual是一个标志,
                {
                    tvResult.setText(null);
                    isEqual=false;
                }
                String mystring0=tvResult.getText().toString();
                mystring0+="0";
                tvResult.setText(mystring0);
                break;

            case R.id.button1:
                if(isEqual)
                {
                    tvResult.setText(null);
                    isEqual=false;
                }
                String mystring1=tvResult.getText().toString();
                mystring1+="1";
                tvResult.setText(mystring1);
                break;

            case R.id.button2:
                if(isEqual)
                {
                    tvResult.setText(null);
                    isEqual=false;
                }
                String mystring2=tvResult.getText().toString();
                mystring2+="2";
                tvResult.setText(mystring2);
                break;

            case R.id.button3:
                if(isEqual)
                {
                    tvResult.setText(null);
                    isEqual=false;
                }
                String mystring3=tvResult.getText().toString();
                mystring3+="3";
                tvResult.setText(mystring3);
                break;

            case R.id.button4:
                if(isEqual)
                {
                    tvResult.setText(null);
                    isEqual=false;
                }
                String mystring4=tvResult.getText().toString();
                mystring4+="4";
                tvResult.setText(mystring4);
                break;

            case R.id.button5:
                if(isEqual)
                {
                    tvResult.setText(null);
                    isEqual=false;
                }
                String mystring5=tvResult.getText().toString();
                mystring5+="5";
                tvResult.setText(mystring5);
                break;

            case R.id.button6:
                if(isEqual)
                {
                    tvResult.setText(null);
                    isEqual=false;
                }
                String mystring6=tvResult.getText().toString();
                mystring6+="6";
                tvResult.setText(mystring6);
                break;
//问你个问题。首先,你点击后怎么显示到   关键是 你怎么职的你点击了1.。。。。
            case R.id.button7:
                if(isEqual)
                {
                    tvResult.setText(null);
                    isEqual=false;
                }
                String mystring7=tvResult.getText().toString();
                mystring7+="7";
                tvResult.setText(mystring7);
                break;

            case R.id.button8:
                if(isEqual)
                {
                    tvResult.setText(null);
                    isEqual=false;
                }
                String mystring8=tvResult.getText().toString();
                mystring8+="8";
                tvResult.setText(mystring8);
                break;

            case R.id.button9:
                if(isEqual)
                {
                    tvResult.setText(null);
                    isEqual=false;
                }
                String mystring9=tvResult.getText().toString();
                mystring9+="9";
                tvResult.setText(mystring9);
                break;

            //other button
            case R.id.buttonPoint:
                if(isEqual)
                {
                    tvResult.setText(null);
                    isEqual=false;
                }
                String mystringPoint=tvResult.getText().toString();
                mystringPoint+=".";
                tvResult.setText(mystringPoint);
                break;

            case R.id.buttonBackspace:
                String strBack=tvResult.getText().toString();
                try
                {
                    tvResult.setText(strBack.substring(0,strBack.length()-1));
                    //哭泣泣。。。这个不是java语法吗欸 看来我又要去恶补java了= =,不用,我理解的 android 是跟java不一样的一个东西,他很多事已经封装好的,不需要知道原理,只知道怎么用就行,上面这句,
                    //应该也没那么难,多设几个变量,就看起来没那么复杂了。我意思是你看  substr这个替换的我就不记得怎么贫血了- 拼写欸,emmm。。。我觉得都记住的话应该
                    //。
                }
                catch (Exception e)
                {
                    tvResult.setText("");
                }
                break;

            case R.id.buttonCE:
                tvResult.setText(null);
                break;

            case R.id.buttonAdd://qq语音方便不。。。方便= =
                //那我打你qq电话啊
                String stringAdd=tvResult.getText().toString();
                if(stringAdd.equals(null))
                    return;
                num1= Double.valueOf(stringAdd);
                op=1;
                tvResult.setText("");
                isEqual=false;
                //?
                break;

            case R.id.buttonSub:
                String stringSub=tvResult.getText().toString();
                if(stringSub.equals(null))
                    return;
                num1= Double.valueOf(stringSub);
                op=2;
                tvResult.setText("");
                isEqual=false;
                break;

            case R.id.buttonMul:
                String stringMul=tvResult.getText().toString();
                if(stringMul.equals(null))
                    return;
                num1= Double.valueOf(stringMul);
                op=3;
                tvResult.setText("");
                isEqual=false;
                break;

            case R.id.buttonDiv:
                String stringDiv=tvResult.getText().toString();
                if(stringDiv.equals(null))
                    return;
                num1= Double.valueOf(stringDiv);
                op=4;
                tvResult.setText("");
                isEqual=false;
                break;

            case R.id.buttonEql:
                String stringEqual=tvResult.getText().toString();
                if (stringEqual.equals(null))
                    return;
                num2=Double.valueOf(stringEqual);
                tvResult.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:
                        if (num2==0)
                        {
                            tvResult.setText("ERROR");
                            return;
                        }
                        result=num1/num2;
                        break;
                }
                tvResult.setText(String.valueOf(result));
                isEqual=true;
                break;

            default:
                break;
        }
    }
}

layout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="30dp"
        android:layout_gravity="center_horizontal"
        android:textSize="40px"
        android:text="请输入:" />

    <EditText
        android:id="@+id/editText"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPersonName"
        android:layout_gravity="center_horizontal"
        android:text="" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:orientation="horizontal"
            android:layout_gravity="center_horizontal"
            android:weightSum="1">

            <Button
                android:id="@+id/buttonDiv"
                android:layout_width="60dp"
                android:layout_height="wrap_content"
                android:text="/" />

            <Button
                android:id="@+id/buttonMul"
                android:layout_width="60dp"
                android:layout_height="wrap_content"
                android:text="*" />

            <Button
                android:id="@+id/buttonBackspace"
                android:layout_width="120dp"
                android:layout_height="wrap_content"
                android:text="Backspace" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:orientation="horizontal"
            android:layout_gravity="center_horizontal">

            <Button
                android:id="@+id/button1"
                android:layout_width="60dp"
                android:layout_height="wrap_content"
                android:text="1" />

            <Button
                android:id="@+id/button2"
                android:layout_width="60dp"
                android:layout_height="wrap_content"
                android:text="2" />

            <Button
                android:id="@+id/button3"
                android:layout_width="60dp"
                android:layout_height="wrap_content"
                android:text="3" />

            <Button
                android:id="@+id/buttonSub"
                android:layout_width="60dp"
                android:layout_height="wrap_content"
                android:text="-" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:orientation="horizontal"
            android:layout_gravity="center_horizontal">

            <Button
                android:id="@+id/button4"
                android:layout_width="60dp"
                android:layout_height="wrap_content"
                android:text="4" />

            <Button
                android:id="@+id/button5"
                android:layout_width="60dp"
                android:layout_height="wrap_content"
                android:text="5" />

            <Button
                android:id="@+id/button6"
                android:layout_width="60dp"
                android:layout_height="wrap_content"
                android:text="6" />

            <Button
                android:id="@+id/buttonAdd"
                android:layout_width="60dp"
                android:layout_height="wrap_content"
                android:text="+" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:orientation="horizontal"
            android:layout_gravity="center_horizontal">

            <Button
                android:id="@+id/button7"
                android:layout_width="60dp"
                android:layout_height="wrap_content"
                android:text="7" />

            <Button
                android:id="@+id/button8"
                android:layout_width="60dp"
                android:layout_height="wrap_content"
                android:text="8" />

            <Button
                android:id="@+id/button9"
                android:layout_width="60dp"
                android:layout_height="wrap_content"
                android:text="9" />

            <Button
                android:id="@+id/buttonEql"
                android:layout_width="60dp"
                android:layout_height="wrap_content"
                android:text="=" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:orientation="horizontal"
            android:layout_gravity="center_horizontal">

            <Button
                android:id="@+id/button0"
                android:layout_width="60dp"
                android:layout_height="wrap_content"
                android:text="0" />

            <Button
                android:id="@+id/buttonPoint"
                android:layout_width="60dp"
                android:layout_height="wrap_content"
                android:text="." />

            <Button
                android:id="@+id/buttonCE"
                android:layout_width="120dp"
                android:layout_height="wrap_content"
                android:text="CE" />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

猜你喜欢

转载自blog.csdn.net/ts719796895/article/details/80946570
今日推荐