小工具知识网

当前位置: 首页 > 行业知识 > 【Android Studio】简易计算器

行业知识

【Android Studio】简易计算器

2026-11-07 05:04:26 来源:互联网转载

简易计算器要求:

1,操作简单,易于掌握,界面简单。

2.方便进行加,减,乘,除等操作。数字保留小数点后两位。

3.包含小数点运算和输入回退功能。

4.能够进行多次叠加运算。

5.系统能够进行多次叠加运算。

6.系统可以稳定运行。

功能图如下:

逻辑流程图如下:

项目建立

项目的创建。

新建项目:项目名称设置为MainActicity。

在Activity模板中选择Blank Activity或者empty Activity模板。

其余操作不变,完成项目的创建。

计算器主界面的实现

1.设计界面布局XML文件。

在Android Studio的工程中resllayout\目录下,找到activity_main.xml文件,这是用来作为主界面布局的设置文件。在该布局文件中,添加一个AbsoluteLayout(绝对布局管理器)组件,用于显示功能图标和图标上的文本,在AbsoluteLayout(绝对布局管理器)中,定义一个TextView用于显示中间数字和结果,定义17个Button用于输入0-9的数字和+、-、*、1、=、.运算符号以及“Back”输入回退按钮,并用“android:onClick”属性绑定它们的响应函数,具体代码如下。

其代码如下:

                                                                        

计算器逻辑的实现

由于程序需要使用到库函数中的模块定义,所以在编写程序时,需“import(导入)”相应的内容

来支持程序中对该类的使用。例如要使用AndroidStudio中的“按钮元件,就必须导入“Button”类,Android计算器的文件头如下:

package com.example.mainacticity;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import java.text.NumberFormat;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;

整体代码如下:

package com.example.mainacticity;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import java.text.NumberFormat;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;public class MainActivity extends AppCompatActivity {    double firstNum=0;//第一个输入的数据    char currentSign='+';//记录第一次输入的符号    StringBuffer currentNum=new StringBuffer();//得到textview中的数据    boolean isFirstPoint=false;//第一个数据是否是小数点    TextView txtResult;//输出结果    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        txtResult=(TextView) findViewById(R.id.txtResult);    }    //1.输入框恢复与初始化    public void init(){        currentNum.delete(0,currentNum.length());//设置当前textview中的值为0        isFirstPoint=false;    }    //2.数制转换函数    public double stringToDouble(){        if(currentNum.length()==0){            return 0;        }        double result=Double.parseDouble(currentNum.toString());        return result;    }    //3.计算函数    public double calcu(){        double result=0;        switch (currentSign){            case '+':                result=firstNum+stringToDouble();                break;            case '-':                result=firstNum-stringToDouble();                break;            case '*':                result=firstNum*stringToDouble();                break;            case '/':                result=firstNum/stringToDouble();                break;            default:                break;        }        //对小数点后的数据进行格式化        NumberFormat format=NumberFormat.getInstance();        format.setMaximumFractionDigits(2);        result=Double.parseDouble(format.format(result));        return result;    }    //4显示数据函数    public void display(){        txtResult.setText(currentNum.toString());    }    //5数字按钮单击响应函数    public void digital_click(View view){        Button btnDigital=(Button)view;        char text= btnDigital.getText().charAt(0);        currentNum.append(text);        display();    }    //6.加法按钮单击    public void add(View view){        double result=calcu();        txtResult.setText(String.valueOf(result));        firstNum=result;        currentSign='+';        init();    }    //7.单击减法    public void sub(View view) {        double result = calcu();        txtResult.setText(String.valueOf(result));        firstNum = result;        currentSign = '-';        init();    }    //8.单击乘法    public void mul(View view) {        double result = calcu();        txtResult.setText(String.valueOf(result));        firstNum = result;        currentSign = '*';        init();    }    //9.单击除法    public void p(View view) {        double result = calcu();        txtResult.setText(String.valueOf(result));        firstNum = result;        currentSign = '/';        init();    }    //10.处理等于函数    public void equ(View view){        double result=calcu();        txtResult.setText(String.valueOf(result));        firstNum=result;        currentSign='+';        init();    }    //11.小数点按钮单击相应函数    public void point_click(View view){        if(isFirstPoint){            return;//当第一个数据为小数点时,程序返回        }        if(currentNum.length()==0){            return;//当没有输入的数据时返回        }        Button btnPoint=(Button) view;        char text=btnPoint.getText().charAt(0);        currentNum.append(text);        isFirstPoint=true;        display();    }    //12.删除按钮单击相应    public void del(View view){        if(currentNum.length()>=1){            currentNum.delete(currentNum.length()-1,currentNum.length());        }        if(currentNum.length()==0){            init();            display();        }        txtResult.setText(currentNum);    }}

选择合适的设备运行:

点击绿色三角run运行,短暂的加载后出现计算器界面:

进行运算:

22+23=45

可以进行简单的加减乘除运算,会自动四舍五入,保留小数点后两位数字。

完成!

上一篇:ACL源码深度探索,揭示奥秘与功能

下一篇:天龙八部Lua秘籍,轻松上手Lua应用技巧,成为高手不是梦!