iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android计算器实现
  • 352
分享到

Android计算器实现

androidandroidstudio 2023-09-27 12:09:15 352人浏览 八月长安
摘要

一、项目概述 这个项目是一个简单的计算器应用,它可以执行加、减、乘、除四种基本运算等计算器的基本功能。我们将使用Android Studio作为开发工具。 二、项目设计 1. 在Android Studio中创建新的Android项目。 2

一、项目概述

这个项目是一个简单的计算器应用,它可以执行加、减、乘、除四种基本运算等计算器的基本功能。我们将使用Android Studio作为开发工具。

二、项目设计

1. 在Android Studio中创建新的Android项目。
2. 在布局文件(`activity_main.xml`)中,我们将添加一个按钮和一个用于显示结果的文本视图。
3. 在代码文件(`MainActivity.java`)中,我们将处理用户的输入并显示计算结果。

三、项目开发

1. 布局文件

在布局文件`activity_main.xml`中实现前端页面效果。使用一些组件例如`EditText`用于输入过程和结果,`Button`用于执行计算。

                                    

GridLayout布局:如果要实现行合并的布局效果,采用GridLayout布局是最简单轻松的实现方式。

常用属性:android:orientation设置水平或垂直显示       android:columnCount设置列数android:rowCount 设置行数

子控件属性:android:layout_rowSpan纵向跨合并几列  android:layout_columSpan横向合并几行       android:layout_gravity父组件的位置

 上图是前端页面效果

2. 代码文件

在代码文件`MainActivity.java`中我们将添加按钮的点击事件监听器,处理用户输入,并显示计算结果。

package com.example.a4_11;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends AppCompatActivity implements View.OnClickListener {    //显式结果和计算过程    private EditText mresult, mjsgc;    //数字0-9    private Button btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9, btn0;    private Button btnd; //小数点    //运算符    private Button btn1j, btnj, btnx, btnc, btn1d; //加减乘除等于    //功能键    private Button btndel, btnqc;//回退键和清除所有键    boolean equals_flag = false;//等号标识    boolean del_flag = false;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //数字0-9        btn1 = findViewById(R.id.btn1);        btn2 = findViewById(R.id.btn2);        btn3 = findViewById(R.id.btn3);        btn4 = findViewById(R.id.btn4);        btn5 = findViewById(R.id.btn5);        btn6 = findViewById(R.id.btn6);        btn7 = findViewById(R.id.btn7);        btn8 = findViewById(R.id.btn8);        btn9 = findViewById(R.id.btn9);        btn0 = findViewById(R.id.btn0);        //运算符        btn1j = findViewById(R.id.btn1j);// +        btnj = findViewById(R.id.btnj);// -        btnx = findViewById(R.id.btnx);// *        btnc = findViewById(R.id.btnc); // /        btnd = findViewById(R.id.btnd);//小数点        btn1d = findViewById(R.id.btn1d);// =        btndel = findViewById(R.id.btndel);//退回        btnqc = findViewById(R.id.btnqc);//清除        mresult = findViewById(R.id.mresult);//结果框        mjsgc = findViewById(R.id.mjsgc);//输入过程框        //点击事件0-9        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);        btnd.setOnClickListener(this);        //点击事件运算符        btn1j.setOnClickListener(this);        btnj.setOnClickListener(this);        btnx.setOnClickListener(this);        btnc.setOnClickListener(this);        btn1d.setOnClickListener(this);        btndel.setOnClickListener(this);        btnqc.setOnClickListener(this);    }    //读取每个按钮的点击的内容    @Override    public void onClick(View v) {        //获取输入框和结果框的内容        String input = mjsgc.getText().toString();        String output = mresult.getText().toString();        switch (v.getId()) {            case R.id.btn0:            case R.id.btn1:            case R.id.btn2:            case R.id.btn3:            case R.id.btn4:            case R.id.btn5:            case R.id.btn6:            case R.id.btn7:            case R.id.btn8:            case R.id.btn9:            case R.id.btnd:                if (equals_flag) {                    //按过等号之后,重新点数字们                    equals_flag = false;                    mjsgc.setText(((Button) v).getText());                    mresult.setText(((Button) v).getText());                } else {                    mjsgc.setText(input + ((Button) v).getText());                    mresult.setText(((Button) v).getText());                }                break;            case R.id.btn1j:            case R.id.btnj:            case R.id.btnx:            case R.id.btnc:                if (equals_flag) {                    //按过等号之后,重新点数字                    equals_flag = false;                    mjsgc.setText(output + " " + ((Button) v).getText() + " ");                } else {                    mjsgc.setText(input + " " + ((Button) v).getText() + " ");                }                break;            case R.id.btndel:                equals_flag = false;                if (input.length() > 0) {//如果获取到的内容不为空                    mjsGC.setText(input.substring(0, input.length() - 1));                } else {                    mresult.setText(null);                    mjsgc.setText(null);                }                break;            case R.id.btnqc:                mresult.setText(null);                mjsgc.setText(null);                break;            case R.id.btn1d://运算结果  =                getResult();//调用处理结果集的方法                break;        }    }    //运算结果的方法    public void getResult() {        try {            String JSGC = mjsgc.getText().toString();//获取计算过程文本框的内容            double dResult = 0;            int iResult = 0;            //如果直接点等号            if (JSGC.equals("") || JSGC == null) {                return;            }            if (equals_flag) {                equals_flag = false;                return;            }            equals_flag = true;//点击过等号之后,标识亮起            String s1, s2, op;            //运算符前的数字            s1 = JSGC.substring(0, JSGC.indexOf(" "));            //运算符            op = JSGC.substring(JSGC.indexOf(" ") + 1, JSGC.indexOf(" ") + 2);            //运算符后的数字            s2 = JSGC.substring(JSGC.indexOf(" ") + 3);            double d1, d2;            //s1转化成double型            if (!s1.equals("")) {                if (s1.charAt(0) == '.') {                    s1 = "0" + s1;//如果简写小数(如0.03简写.03,需要帮它完整输出数字)                }                d1 = Double.parseDouble(s1);//正常转化            } else {                d1 = 0;//如果首次只输入了“运算符 数字”,如: + 4,则返回:0 + 4                mjsgc.setText("0" + JSGC);            }            //s2转化成double型            if (!s2.equals("")) {                if (s2.charAt(0) == '.') {                    s2 = "0" + s2;                }                d2 = Double.parseDouble(s2);            } else {                d2 = d1;                if (s1.equals("")) {                    mjsgc.setText("0" + JSGC + "0");//如果只输入了运算符,如 + ,输出0 + 0,得结果0                } else {                    mjsgc.setText(JSGC + s1);//如果不输入s2,如,9 * ,输出9 * 9 ,得结果81                }            }            if (op.equals("+")) {//如果是 +                dResult = d1 + d2;            } else if (op.equals("-")) {                dResult = d1 - d2;            } else if (op.equals("*")) {                dResult = d1 * d2;            } else if (op.equals("/")) {                if (d2 == 0) { //如果被除数是0                    Toast.makeText(this, "除数不能为0", Toast.LENGTH_SHORT).show();                    return;                } else {//否则执行正常是除法运算                    dResult = d1 / d2;                }            }            if (s1.contains(".") || s2.contains(".") || op.equals("/")) {                mresult.setText(dResult + "");//如果是小数、或者除法运算            } else {                iResult = (int) dResult; //否则都是整型                mresult.setText(iResult + "");            }        } catch (Exception e) {            Toast.makeText(this, e.toString(), Toast.LENGTH_SHORT).show();            Log.i("JSQ", e.toString());        }    }}

3. 运行项目

点击运行按钮,即可运行成功。

运行效果图 

三、心得体会

1.理解布局设计

理解如何设计和实现一个计算器的用户界面是一个重要的步骤。我需要考虑如何将各种控件(如文本框,按钮等)放置在屏幕上以获得最佳的用户体验。

2.理解Android事件处理

当用户在计算器上进行操作时(如点击按钮或输入数字),需要有相应的事件处理逻辑来响应这些操作。这涉及到理解Android的事件处理机制,如点击事件,输入事件等。

3.学习与创新

开发Android计算器让我了解到,学习新的技术和知识是必要的,但更重要的是能够将这些知识应用到实际的问题中,并进行创新。这个过程让我对学习有了新的理解。

4.理解Android数据存储

在这个项目中,我需要在应用中存储一些数据,如用户输入的数字和操作。我需要了解如何使用Android的数据存储技术来实现这一点。

5.调试和测试

在开发过程中,我需要花大量的时间进行调试和测试,以确保计算器的功能正常,用户界面友好。这让我了解到测试的重要性,以及如何编写有效的测试用例来发现和修复错误。

四、总结

这次项目中学习到如何在Android应用中实现计算器功能。如何在Activity中创建和管理视图。解如何使用XML布局文件来设计和布局界面。需要熟悉各种布局元素,如`GridLayout`。学习到如何使用各种UI组件来实现用户交互。这包括如何使用`EditText`、`Button`、`TextView`等组件来输入和显示文本。在实现计算器功能时,你需要了解各种运算的规则和算法。这包括加法、减法、乘法和除法的基本原理,以及如何处理浮点数和括号等复杂表达式。可以掌握Android应用开发的基本概念,包括布局、事件处理和计算功能。这将在Android开发领域的进一步学习打下坚实的基础。

来源地址:https://blog.csdn.net/m0_72104085/article/details/131307062

--结束END--

本文标题: Android计算器实现

本文链接: https://www.lsjlt.com/news/419607.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android计算器实现
    一、项目概述 这个项目是一个简单的计算器应用,它可以执行加、减、乘、除四种基本运算等计算器的基本功能。我们将使用Android Studio作为开发工具。 二、项目设计 1. 在Android Studio中创建新的Android项目。 2...
    99+
    2023-09-27
    android android studio
  • Android实现房贷计算器
    本文实例为大家分享了Android实现房贷计算器的具体代码,供大家参考,具体内容如下 fangdai(activity) package com.example.myapplicat...
    99+
    2024-04-02
  • Android实现简单计算器
    本文实例为大家分享了Android实现简单计算器的具体代码,供大家参考,具体内容如下 功能 1、加减乘除四则运算 2、归0 3、回退 4、即时运算 配置 在build.gradle...
    99+
    2024-04-02
  • Android Studio实现简易计算器设计
    本文实例为大家分享了Android Studio实现简易计算器的具体代码,供大家参考,具体内容如下 一、题目 1、如图所示(实际设计,类似此界面样式即可,全屏时,按钮将会纵向拉伸),...
    99+
    2024-04-02
  • android studio实现简易的计算器
    本文实例为大家分享了android studio实现简易计算器的具体代码,供大家参考,具体内容如下 先看效果图 基本功能:加,减,乘,除 核心代码实现 public class M...
    99+
    2024-04-02
  • Android如何实现房贷计算器
    今天小编给大家分享一下Android如何实现房贷计算器的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。fangdai(acti...
    99+
    2023-06-30
  • Android实现房贷计算器功能
    本文实例为大家分享了Android实现房贷计算器的具体代码,供大家参考,具体内容如下 package com.atomic.moretool; import android.os....
    99+
    2024-04-02
  • Android实现简易计算器功能
    本项目为大家分享了Android实现计算器功能的具体代码,供大家参考,具体内容如下 项目介绍 练手项目。能实现加减乘除及括号运算。 开发思路 界面布局  1.界面布...
    99+
    2024-04-02
  • Android Studio怎么实现简易计算器设计
    今天小编给大家分享一下Android Studio怎么实现简易计算器设计的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下...
    99+
    2023-06-30
  • Android Studio实现简单计算器开发
    本文实例为大家分享了Android Studio实现简单计算器开的具体代码,供大家参考,具体内容如下 效果展示: 路径和文件: AndroidManifest.xml <...
    99+
    2024-04-02
  • Android Studio实现简易计算器源码
    本文实例为大家分享了Android Studio实现简易计算器的具体代码,供大家参考,具体内容如下 效果图: 源码: 布局样式: <xml version="1.0" en...
    99+
    2024-04-02
  • Android studio开发实现计算器功能
    Android移动开发实现简单计算器功能,供大家参考,具体内容如下 前言 android 开发小实验android 移动开发实现 简易计算器功能小白也能轻松上手,复制粘贴就可使用 使...
    99+
    2024-04-02
  • Android实现简易计算功能
    本文实例为大家分享了Android实现简易计算功能的具体代码,供大家参考,具体内容如下 效果如图: activity_main.xml <?xml version...
    99+
    2024-04-02
  • Android开发实现简单计算器功能
    计算器项目,要求实现加、减、乘、除、求倒数、求平方根等简单运算。 真机调试结果如下图: 布局文件:main_activity.xml <?xml version=...
    99+
    2024-04-02
  • android studio如何实现简易的计算器
    本篇内容主要讲解“android studio如何实现简易的计算器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“android studio如何实现简易的计算器”吧!先看效果...
    99+
    2023-06-30
  • Android studio实现简单计算器的编写
    本文实例为大家分享了Android studio实现简单计算器的具体代码,供大家参考,具体内容如下 话不多说,首先附上代码: MainActivity.java package co...
    99+
    2024-04-02
  • Android开发简单计算器实现代码
    计算器项目,要求实现加、减、乘、除、求倒数、求平方根等简单运算。 真机调试结果如下图: 布局文件:main_activity.xml <?xml version=...
    99+
    2024-04-02
  • Android实现横屏切换科学计算器
    本文实例为大家分享了Android实现横屏切换科学计算器的具体代码,供大家参考,具体内容如下 简单计算器设计,实现以下功能: 1、竖屏时能实现基本的加减乘除运算、回退和清空输入。 2...
    99+
    2024-04-02
  • 用Android studio实现简易计算器功能
    用Android studio做一个简易计算器,供大家参考,具体内容如下 长话短说,先建立一个Android项目; 创建完成后打开activity_main.xml,构建我们的应...
    99+
    2024-04-02
  • Android Studio怎么实现简易计算器App
    本篇内容主要讲解“Android Studio怎么实现简易计算器App”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android Studio怎么实现简易计算器App”吧!...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作