千家信息网

Android studio开发怎么实现计算器功能

发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章主要介绍"Android studio开发怎么实现计算器功能"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Android studio开发怎么实现计算
千家信息网最后更新 2025年01月16日Android studio开发怎么实现计算器功能

这篇文章主要介绍"Android studio开发怎么实现计算器功能"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Android studio开发怎么实现计算器功能"文章能帮助大家解决问题。

前言

android 开发小实验
android 移动开发实现 简易计算器功能
小白也能轻松上手,复制粘贴就可使用

使用工具

Android Studio 或者 intellij idea

首先体验一下结果

预览图

源码

前端页面布局

activity_calculator.xml

                           

后端源码

CalculatorActivity.java

package com.example.myappch6;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("");        }    }}

关于"Android studio开发怎么实现计算器功能"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

0