Android studio implements calculator android development small experiment

Android mobile development implements simple calculator function

foreword

Android development small experiment
android mobile development realizes simple calculator function,
Xiaobai can also get started easily, copy and paste can be used

use tools

Android Studio or intellij idea
first experience the results

preview

insert image description here
insert image description here

source code

Front page layout

activity_calculator.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:app="http://schemas.android.com/apk/res-auto"
              xmlns:tools="http://schemas.android.com/tools"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:gravity="center"
              android:orientation="vertical"
              android:background="@drawable/bg2"
>   <TextView
        android:layout_width="410dp"
        android:layout_height="60dp"
        android:text="计算器"
        android:textSize="35dp"
        android:gravity="center"
        android:background="#A6EFEF"
        >

    </TextView>
    <TextView
            android:id="@+id/text_show"
            android:layout_width="410dp"
            android:layout_height="80dp"
            android:background="#EAB9B9"
            android:textSize="30dp"
    />

    <EditText
            android:id="@+id/ediText"
            android:layout_width="410dp"
            android:layout_height="70dp"
            android:layout_marginBottom="10dp"
            android:background="#EAB9B9"
            android:editable="false"
            android:gravity="right|center_vertical"
            android:paddingRight="20dp"
            android:hint="请输入数字"
            android:textSize="30sp"
    />


    <GridLayout
            android:layout_width="410dp"
            android:layout_height="400dp"
            android:columnCount="5"
            android:rowCount="6">

        <Button
                android:id="@+id/button6"
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:text=""
                android:background="#87F4F8"
                android:layout_margin="2dp"
                android:textSize="20dp"
        />
        <Button
                android:id="@+id/button7"
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:text="CE"
                android:background="#87F4F8"
                android:layout_margin="2dp"
                android:textSize="20dp"
        />

        <Button
                android:id="@+id/button8"
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:text="C"
                android:background="#87F4F8"
                android:layout_margin="2dp"
                android:textSize="20dp"
        />

        <Button
                android:id="@+id/button9"
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:text="±"
                android:background="#87F4F8"
                android:layout_margin="2dp"
                android:textSize="20dp"
        />

        <Button
                android:id="@+id/button10"
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:text=""
                android:background="#87F4F8"
                android:layout_margin="2dp"
                android:textSize="20dp"
        />

        <Button
                android:id="@+id/nine"
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:text="9"
                android:background="#87F4F8"
                android:layout_margin="2dp"
                android:textSize="20dp"


        />

        <Button
                android:id="@+id/eight"
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:text="8"
                android:background="#87F4F8"
                android:layout_margin="2dp"
                android:textSize="20dp"
        />

        <Button
                android:id="@+id/seven"
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:text="7"
                android:background="#87F4F8"
                android:layout_margin="2dp"
                android:textSize="20dp"
        />
        <Button
                android:id="@+id/divider"
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:text="/"
                android:background="#87F4F8"
                android:layout_margin="2dp"
                android:textSize="20dp"
        />

        <Button
                android:id="@+id/button15"
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:text="%"
                android:background="#87F4F8"
                android:layout_margin="2dp"
                android:textSize="20dp"
        />

        <Button
                android:id="@+id/four"
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:text="4"
                android:background="#87F4F8"
                android:layout_margin="2dp"
                android:textSize="20dp"
        />
        <Button
                android:id="@+id/five"
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:text="5"
                android:background="#87F4F8"
                android:layout_margin="2dp"
                android:textSize="20dp"
        />
        <Button
                android:id="@+id/six"
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:text="6"
                android:background="#87F4F8"
                android:layout_margin="2dp"
                android:textSize="20dp"
        />
        <Button
                android:id="@+id/multiply"
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:text="*"
                android:background="#87F4F8"
                android:layout_margin="2dp"
                android:textSize="20dp"
        />
        <Button
                android:id="@+id/button20"
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:text="1/X"
                android:background="#87F4F8"
                android:layout_margin="2dp"
                android:textSize="20dp"
        />

        <Button
                android:id="@+id/one"
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:text="1"
                android:background="#87F4F8"
                android:layout_margin="2dp"
                android:textSize="20dp"
        />

        <Button
                android:id="@+id/two"
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:text="2"
                android:background="#87F4F8"
                android:layout_margin="2dp"
                android:textSize="20dp"
        />
        <Button
                android:id="@+id/three"
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:text="3"
                android:background="#87F4F8"
                android:layout_margin="2dp"
                android:textSize="20dp"
        />

        <Button
                android:id="@+id/minus"
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:text="-"
                android:background="#87F4F8"
                android:layout_margin="2dp"
                android:textSize="20dp"
        />
        <Button
                android:id="@+id/equal"
                android:layout_width="80dp"
                android:layout_height="100dp"
                android:layout_rowSpan="2"
                android:text="="
                android:background="#87F4F8"
                android:layout_margin="2dp"
                android:textSize="20dp"
        />
        <Button
                android:id="@+id/zero"
                android:layout_width="160dp"
                android:layout_height="wrap_content"
                android:layout_columnSpan="2"
                android:text="0"
                android:background="#87F4F8"
                android:layout_margin="2dp"
                android:textSize="20dp"
        />

        <Button
                android:id="@+id/point"
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:text="."
                android:background="#87F4F8"
                android:layout_margin="2dp"
                android:textSize="20dp"
        />
        <Button
                android:id="@+id/add"
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:text="+"
                android:background="#87F4F8"
                android:layout_margin="2dp"
                android:textSize="20dp"
        />
    </GridLayout>
</LinearLayout>

Backend source code

CalculatorActivity.java

package com.example.myappch5;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class CalculatorActivity extends Activity implements View.OnClickListener{
    
    
    //数字0-9
    Button number_0;
    Button number_1;
    Button number_2;
    Button number_3;
    Button number_4;
    Button number_5;
    Button number_6;
    Button number_7;
    Button number_8;
    Button number_9;

    //运算符
    Button add;         //+
    Button minus;       //-
    Button mul;         //*
    Button divide;      //除
    Button equal;       //=
    Button point;       //小数点

    //清除
    Button det;

    boolean clean;               //清空标识

    EditText editText;           //结果显示集

    TextView text_show;          //显示计算器文本控件

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_calculator);
        //数字0——9实例化
        number_0=findViewById(R.id.zero);
        number_1=findViewById(R.id.one);
        number_2=findViewById(R.id.two);
        number_3=findViewById(R.id.three);
        number_4=findViewById(R.id.four);
        number_5=findViewById(R.id.five);
        number_6=findViewById(R.id.six);
        number_7=findViewById(R.id.seven);
        number_8=findViewById(R.id.eight);
        number_9=findViewById(R.id.nine);

        //运算符实例化
        add=findViewById(R.id.add);        //加
        minus=findViewById(R.id.minus);         //减
        mul=findViewById(R.id.multiply);        //乘
        divide=findViewById(R.id.divider);      //除
        equal=findViewById(R.id.equal);         //等
        point=findViewById(R.id.point);         //小数点
        det=findViewById(R.id.button8);         //清除

        //结果显示集
        text_show = findViewById(R.id.text_show);
        editText=findViewById(R.id.ediText);
//添加事件点击事件
        // 数字点击事件
        number_0.setOnClickListener( this);
        number_1.setOnClickListener(this);
        number_2.setOnClickListener( this);
        number_3.setOnClickListener( this);
        number_4.setOnClickListener(this);
        number_5.setOnClickListener( this);
        number_6.setOnClickListener( this);
        number_7.setOnClickListener(this);
        number_8.setOnClickListener( this);
        number_9.setOnClickListener( this);
        // 符号点击事件
        add.setOnClickListener( this);
        minus.setOnClickListener( this);
        mul.setOnClickListener( this);
        divide.setOnClickListener( this);
        point.setOnClickListener( this);
        equal.setOnClickListener( this);
        det.setOnClickListener( this);
    }

    //读取每个按钮内容
    public void onClick(View view){
    
    
        //获取文本内容
        String  input=editText.getText().toString();
        switch (view.getId()){
    
    
            case R.id.zero:     // 0
            case R.id.one:      // 1
            case R.id.two:      // 2
            case R.id.three:    // 3
            case R.id.four:     // 4
            case R.id.five:     // 5
            case R.id.six:      // 6
            case R.id.seven:    // 7
            case R.id.eight:    // 8
            case R.id.nine:     // 9
            case R.id.point:    //小数点
                if(clean){
    
    
                    clean=false;
                    editText.setText("");   //赋值为空
                }
                editText.setText(input+((Button)view).getText()+"");    //结果集就是本身
                break;
            case R.id.add:
            case R.id.minus:          // 减
            case R.id.multiply:       // 乘
            case R.id.divider:        // 除
                if(clean){
    
    
                    clean=false;
                    input="";
                    editText.setText("");
                }
                editText.setText(input+" "+((Button)view).getText()+" ");
                break;
            case R.id.button8:      //清除
                if(clean){
    
    
                    clean=false;
                    input="";
                    editText.setText("");
                }else  if(input!=null || !input.equals("")){
    
    
                    //如果获取内容为空
                    editText.setText(input.substring(0,input.length() - 1 ));//结果集为空
                    break;
                }
                break;
            case  R.id.equal:   //运算结果=
                getResult();    //调用处理结果方法
                break;
        }
    }
//运算结果方法
    private void getResult(){
    
    
        String exp=editText.getText().toString();       //获取文本框内容
        if(exp==null||exp.equals("")){
    
    
            return;
        }
        if(!exp.contains("")){
    
    
            return;
        }
        if(clean){
    
    
            clean=false;
            return;
        }
        clean=true;
        double result=0;
 //进行截取
        // 运算符前的数字
        String s1=exp.substring(0,exp.indexOf(" "));
        //运算符
        String op=exp.substring(exp.indexOf(" ")+1,exp.indexOf(" ")+2);
        //运算符后的数字
        String s2=exp.substring(exp.indexOf(" ")+3);

        if(!s1.equals("")&&!s2.equals("")){
    
    
            //如果包含小数点的运算
            double d1=Double.parseDouble(s1);//则数字都是double类型
            double d2=Double.parseDouble(s2);

            if(op.equals("+")){
    
    
                // 如果是+
                result=d1+d2;
                text_show.setText(d1+ "+" +d2+"=");
            }else if(op.equals("-")){
    
    
                //如果是-
                result=d1-d2;
                text_show.setText(d1+ "-" +d2+"=");
            }else if(op.equals("*")){
    
    
                //如果是*
                result=d1*d2;
                text_show.setText(d1+ "*" +d2+"=");
            }else if(op.equals("/")){
    
    
                if(d2==0){
    
    
                    //如果被除数是0
                    result=0;//则结果为0
                }
                else {
    
    
                    //否则执行正常运算
                    result=d1/d2;
                    text_show.setText(d1+ "/" +d2+"=");
                }
            }
            if(!s1.contains(".") &&!s2.contains(".")&&!op.equals("/")){
    
    
                //如果是整数类型
                int r=(int)result;//都是整形
                editText.setText(r+"");
            }else {
    
    
                editText.setText(result+"");
            }
        }else  if(!s1.equals("")&& s2.equals("")){
    
    
            //如果只输入运算符前的数字
            editText.setText(exp);//直接返回当前输入内容
        }else if (s1.equals("")&& !s2.equals("")){
    
    
            //如果是只输入运算符后面的数
            double d2 =Double.parseDouble(s2);

            //运算符当前没有输入数字
            if(op.equals("+")){
    
    
                result= 0 + d2;
                text_show.setText(d2+"=");
            }else  if(op.equals("-")){
    
    
                result= 0 - d2;
                text_show.setText(d2+"=");
            }else if (op.equals("*")){
    
    
                result= 0;

            }else  if(op.equals("/")){
    
    
                result= 0;
            }
            if(!s1.contains(".")&&!s2.contains(".")){
    
    
                int r=(int) result;
                editText.setText(r+"");
            }else {
    
    
                editText.setText(result+"");
            }
        }else {
    
    
            editText.setText("");
        }
    }
}

Thanks for watching! !

Guess you like

Origin blog.csdn.net/hjjshua/article/details/123779110