Android Studio制作一个简单的计算器APP

虽然现在我们日常生活中很少用到计算器,但是第一次尝试在Android Studio上做一个计算器

程序设计步骤:
(1)在布局文件中声明编辑文件框EditText,按钮Button等组件。
(2)在MainActivity中获取组件实例。
(3)通过swtich函数,判断输入的内容,并进行相应操作,通过getText()获取文本内容,setText()显示。

程序代码设计:
布局实现:在activi_main.xml中设置。使用线性布局(LinearLayout)与网格布局(GridLayout)来设置界面。在设计区域设置一个4行4列的网格布局,每行划分为均等的16个按钮,分别代表数字0-9,小数点,和运算符加减乘除以及等于号。
 

最终效果图如下:

Android Studio制作一个简单的计算器APP_第1张图片

xml文件:




    

    

        

java文件: 

package com.example.mycalculater;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;


public class MainActivity extends AppCompatActivity {
    Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,badd,bsub,bmul,bdiv,bdot,bequal,b10,b12;
    TextView ans;
    double var1,var2;
    boolean add,sub,mul,div,n10;
    boolean sq = false;


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

        b1= (Button) findViewById(R.id.btn1);
        b2= (Button) findViewById(R.id.btn2);
        b3= (Button) findViewById(R.id.btn3);
        b4= (Button) findViewById(R.id.btn4);
        b5= (Button) findViewById(R.id.btn5);
        b6= (Button) findViewById(R.id.btn6);
        b7= (Button) findViewById(R.id.btn7);
        b8= (Button) findViewById(R.id.btn8);
        b9= (Button) findViewById(R.id.btn9);
        b0= (Button) findViewById(R.id.btn0);
        badd= (Button) findViewById(R.id.btnadd);
        bsub= (Button) findViewById(R.id.btnsub);
        bmul= (Button) findViewById(R.id.btnmul);
        bdiv= (Button) findViewById(R.id.btndiv);
        bdot= (Button) findViewById(R.id.btndot);
        bequal= (Button) findViewById(R.id.btnequel);
        b10= (Button) findViewById(R.id.btn10);
        b12= (Button) findViewById(R.id.btn12);
        ans = (TextView) findViewById(R.id.Answer);


        b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(sq==true){
                    ans.setText(null);
                    ans.setText(ans.getText()+"1");
                    sq=false;
                }else
                    ans.setText(ans.getText()+"1");

            }
        });
        b2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(sq==true){
                    ans.setText(null);
                    ans.setText(ans.getText()+"2");
                    sq=false;
                }else
                     ans.setText(ans.getText()+"2");
            }
        });
        b3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(sq==true){
                    ans.setText(null);
                    ans.setText(ans.getText()+"3");
                    sq=false;
                }else
                    ans.setText(ans.getText()+"3");
            }
        });
        b4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(sq==true){
                    ans.setText(null);
                    ans.setText(ans.getText()+"4");
                    sq=false;
            }else
                ans.setText(ans.getText()+"4");
            }
        });
        b5.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(sq==true){
                    ans.setText(null);
                    ans.setText(ans.getText()+"5");
                    sq=false;
                }else
                ans.setText(ans.getText()+"5");
            }
        });
        b6.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(sq==true){
                    ans.setText(null);
                    ans.setText(ans.getText()+"6");
                    sq=false;
                }else
                ans.setText(ans.getText()+"6");
            }
        });
        b7.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(sq==true){
                    ans.setText(null);
                    ans.setText(ans.getText()+"7");
                    sq=false;
                }else
                ans.setText(ans.getText()+"7");
            }
        });
        b8.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(sq==true){
                    ans.setText(null);
                    ans.setText(ans.getText()+"8");
                    sq=false;
                }else
                ans.setText(ans.getText()+"8");
            }
        });
        b9.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(sq==true) {
                    ans.setText(null);
                    ans.setText(ans.getText()+"9");
                    sq=false;
                }else
                ans.setText(ans.getText()+"9");
            }
        });
        b0.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(sq==true){
                    ans.setText(null);
                    ans.setText(ans.getText()+"0");
                    sq=false;
                }else
                ans.setText(ans.getText()+"0");
            }
        });
        bdot.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                try {
                    if(ans.getText().toString().contains("."))
                        ans.setText(ans.getText()+"");
                    else
                        ans.setText(ans.getText()+".");
                } catch (Exception e) {
                    ans.setText("出错");
                }
            }
        });
        badd.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                try {
                    var1 = Double.parseDouble(ans.getText()+"");
                    add=true;
                    ans.setText(null);
                }catch (RuntimeException a){
                    ans.setText("错误");
                    sq=true;

                }
            }
        });
        bsub.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                try {
                    var1 = Double.parseDouble(ans.getText()+"");
                    sub=true;
                    ans.setText(null);
                }catch(RuntimeException a){
                    ans.setText("错误");
                    sq=true;
                }
            }
        });
        bmul.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                try {
                    var1 = Double.parseDouble(ans.getText()+"");
                    mul=true;
                    ans.setText(null);
                }catch(RuntimeException a){
                    ans.setText("错误");
                    sq=true;
                }
            }
        });
        bdiv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                /*var1 = Double.parseDouble(ans.getText()+"");
                div=true;
                ans.setText(null);*/
                try {
                    var1 = Double.parseDouble(ans.getText()+"");
                    div=true;
                    ans.setText(null);
                }catch(RuntimeException a){
                    ans.setText("错误");
                    sq=true;
                }
            }
        });
        b10.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ans.setText(null);
                add=false;sub=false;mul=false;div=false;
            }
        });
        b12.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                try {
                    String temp = "";
                    temp = ans.getText().toString().substring(0, ans.length() - 1);
                    ans.setText(temp + "");
                }catch(RuntimeException a){
                    ans.setText("错误");
                }
            }
        });
        bequal.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                try {
                    var2 = Double.parseDouble(ans.getText() + "");
                    if (add == true) {
                        ans.setText(var1 + var2 + "");
                        add = false;
                        sq = true;
                    }
                    if (sub == true) {
                        ans.setText(var1 - var2 + "");
                        sub = false;
                        sq = true;
                    }
                    if (mul == true) {
                        ans.setText(var1 * var2 + "");
                        mul = false;
                        sq = true;
                    }
                    if (div == true) {
                        ans.setText(var1 / var2 + "");
                        div = false;
                        sq = true;
                    }
                    if (n10 == true) {
                        ans.setText(0 + "");
                        n10 = false;
                        sq = true;
                    }
                }catch(RuntimeException a){
                }
                /*String temp="";
                temp=ans.getText().toString().substring(0,ans.length()-1);
                ans.setText(temp+"");*/
            }
        });

//        public void opratorCalc(String operatorNumber,String currentOprator)
//        {
//            if(TextUtils.isEmpty(lastOperators))
//            {
//                firstNumber = Double.parseDouble(operatorNumber);
//                return;
//            }






    }
}

你可能感兴趣的:(Android,android,android,studio)