Android——在线计算器完整代码

这篇具有很好参考价值的文章主要介绍了Android——在线计算器完整代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 实现效果

Android——在线计算器完整代码 Android——在线计算器完整代码Android——在线计算器完整代码Android——在线计算器完整代码

一、xml布局文件

这里采用线性布局,关于计算器的布局,可以查看之前的文章。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/textResult"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="30sp"
        android:gravity="right"
        android:text="" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <Button
            android:id="@+id/btnCLs"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:text="C"/>
        <Button
            android:id="@+id/btnDel"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:text="Del"/>


    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <Button
            android:id="@+id/btnOne"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="1"/>
        <Button
            android:id="@+id/btnTwo"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="2"/>
        <Button
            android:id="@+id/btnThree"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="3"/>
        <Button
            android:id="@+id/btnAdd"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="+"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <Button
            android:id="@+id/btnFour"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="4"/>
        <Button
            android:id="@+id/btnFive"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="5"/>
        <Button
            android:id="@+id/btnSix"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="6"/>
        <Button
            android:id="@+id/btnReduce"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="-"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <Button
            android:id="@+id/btnSeven"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="7"/>
        <Button
            android:id="@+id/btnEight"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="8"/>
        <Button
            android:id="@+id/btnNine"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="9"/>
        <Button
            android:id="@+id/btnMul"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="*"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <Button
            android:id="@+id/btnZero"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="0"/>
        <Button
            android:id="@+id/btnPoint"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="."/>
        <Button
            android:id="@+id/btnEquals"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="="/>
        <Button
            android:id="@+id/btnChu"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="÷"/>

    </LinearLayout>
</LinearLayout>

二、MainActivity.java文件 

1.创建每个按钮的对象

2.实例化每个按钮 通过每个按钮的id进行实例化创建

3.设置每个按钮的点击事件即监听按钮
switch通过id判断被点击的按钮属于哪个控件。如果是数字或小数点,setText(str + ((Button) view).getText())。
如果是加减乘除,setText(str + " " + ((Button) view).getText() + " ")。这里的空格是很巧妙的,对下面运算结果中提取两个数字大有帮助。
如果是清空按钮,setText("")。
如果是删了后面一位数字,setText(str.substring(0,str.length()-1))。调用substring(beginIndex,endIndex)函数。substring函数是用来截取一个字段的一部分。
如果是等于按钮,调用getresult()方法。

4.创建运算结果的方法getresult()。
首先将其中的两个数字和运算符分割出来,调用substring(0,exp.indexOf(" "))函数。indexOf函数用于返回[目标字符串]在[源字符串]中的位置。
接着判断两个数都有,还是第一个数/第二个数为空,分情况写代码。

5.MainActivity.java代码如下:

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{//实现鼠标点击的事件的监听接口

    //创建每个按钮的对象
    //数字按钮
    Button btnOne,btnTwo,btnThree,btnFour,btnFive,btnSix,btnSeven,btnEight,btnNine,btnZero;
    //加减乘除
    Button btnChu,btnAdd,btnReduce,btnMul;
    //其他按钮
    Button btnCLs,btnDel,btnEquals,btnPoint;
    //文本框
    TextView textResult;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);//设置采用哪一个布局文件

        //实例化每个按钮 通过每个按钮的id进行实例化创建
        btnOne = (Button) findViewById(R.id.btnOne);
        btnTwo = (Button) findViewById(R.id.btnTwo);
        btnThree = (Button) findViewById(R.id.btnThree);
        btnFour = (Button) findViewById(R.id.btnFour);
        btnFive = (Button) findViewById(R.id.btnFive);
        btnSix = (Button) findViewById(R.id.btnSix);
        btnSeven = (Button) findViewById(R.id.btnSeven);
        btnEight = (Button) findViewById(R.id.btnEight);
        btnNine = (Button) findViewById(R.id.btnNine);
        btnZero = (Button) findViewById(R.id.btnZero);

        btnChu = (Button) findViewById(R.id.btnChu);
        btnAdd = (Button) findViewById(R.id.btnAdd);
        btnReduce = (Button) findViewById(R.id.btnReduce);
        btnMul = (Button) findViewById(R.id.btnMul);

        btnCLs = (Button) findViewById(R.id.btnCLs);
        btnDel = (Button) findViewById(R.id.btnDel);
        btnEquals = (Button) findViewById(R.id.btnEquals);
        btnPoint = (Button) findViewById(R.id.btnPoint);

        textResult = (TextView)findViewById(R.id.textResult);

        //设置每个按钮的点击事件即监听按钮
        btnOne.setOnClickListener(this);
        btnTwo.setOnClickListener(this);
        btnThree.setOnClickListener(this);
        btnFour.setOnClickListener(this);
        btnFive.setOnClickListener(this);
        btnSix.setOnClickListener(this);
        btnSeven.setOnClickListener(this);
        btnEight.setOnClickListener(this);
        btnNine.setOnClickListener(this);
        btnZero.setOnClickListener(this);

        btnChu.setOnClickListener(this);
        btnAdd.setOnClickListener(this);
        btnReduce.setOnClickListener(this);
        btnMul.setOnClickListener(this);

        btnCLs.setOnClickListener(this);
        btnDel.setOnClickListener(this);
        btnEquals.setOnClickListener(this);
        btnPoint.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {

        String str = textResult.getText().toString(); //获取当前textview文本

        switch (view.getId()) {
            case R.id.btnOne:
            case R.id.btnTwo:
            case R.id.btnThree:
            case R.id.btnFour:
            case R.id.btnFive:
            case R.id.btnSix:
            case R.id.btnSeven:
            case R.id.btnEight:
            case R.id.btnNine:
            case R.id.btnZero:
            case R.id.btnPoint:
                textResult.setText(str + ((Button) view).getText());
                break;

            case R.id.btnChu:
            case R.id.btnAdd:
            case R.id.btnReduce:
            case R.id.btnMul:
                textResult.setText(str + " " + ((Button) view).getText() + " ");
                break;

            case R.id.btnCLs:
                textResult.setText("");
                break;

            case R.id.btnDel:
                if(str != null && !str.equals("")){
                    textResult.setText(str.substring(0,str.length()-1));   // substring(beginIndex, endIndex)  [beginIndex, endIndex)
                }                                                          //  str="123456"   str.substring(0,3) ="123";         "1237 + 10"
                break;

            case R.id.btnEquals:
                getresult();
        }
    }

    private void getresult() {
        String exp = textResult.getText().toString(); //从textview获取整个文本
        if(exp == null || exp.equals("")){
            return;
        }
        if(!exp.contains(" ")){
            return;
        }

        //将其中的两个数字和运算符分割出来
        float result = 0;                                                   // exp ="123 + 5"
        String num1 = exp.substring(0,exp.indexOf(" "));                      // num1 ="123"
        String ex = exp.substring(exp.indexOf(" ") + 1,exp.indexOf(" ") + 2); // ex="+"
        String num2 = exp.substring(exp.indexOf(" ") + 3);                    // num2="5"

        //如果两个数字都不为空则判断运算符进行运算
        if(!num1.equals("") && !num2.equals("")) {
            float d1 = Float.parseFloat(num1);
            float d2 = Float.parseFloat(num2);

            if (ex.equals("+")) {
                result = d1 + d2;
            } else if (ex.equals("-")) {
                result = d1 - d2;
            } else if (ex.equals("*")) {
                result = d1 * d2;
            } else if (ex.equals("÷")) {
                if (d2 == 0) {
                    result = 0;
                } else {
                    result = d1 / d2;
                }
            }
            textResult.setText(result + "");
        }else if(!num1.equals("") && num2.equals("")){
            textResult.setText(exp.substring(0,exp.indexOf(" ")));   //textResult.setText(exp);
        }else if(num1.equals("") && !num2.equals("")){
            float d3 = Float.parseFloat(num2);
            if(ex.equals("+")){
                result = 0 + d3;
            }else if(ex.equals("-")){
                result = 0 - d3;
            }else if(ex.equals("*")){
                result = 0 * d3;
            }else if(ex.equals("÷")){
                result = 0;
            }
            textResult.setText(result + "");
        }else{
            textResult.setText("");
        }
    }
}

四、总结

总体来说很不错,也实现了清除后面一个数的功能,但还未能实现负数的运算 。文章来源地址https://www.toymoban.com/news/detail-424044.html

到了这里,关于Android——在线计算器完整代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android计算器实现

    这个项目是一个简单的计算器应用,它可以执行加、减、乘、除四种基本运算等计算器的基本功能。我们将使用Android Studio作为开发工具。 1. 在Android Studio中创建新的Android项目。 2. 在布局文件(`activity_main.xml`)中,我们将添加一个按钮和一个用于显示结果的文本视图。 3. 在

    2024年02月07日
    浏览(38)
  • Android开发:kotlin语言实现简易计算器

    输入两个数字,可选加减乘除操作符,并计算显示对应结果 随系统切换语言 可对结果进行四舍五入操作 界面布局:activity_main.xml文件代码 字符定义:string.xml文件代码 逻辑实现:MainActivity.kt 文件代码 方法一(偷懒): 复制文件到对应位置 方法二: 1. 绘制界面 2. 编写逻辑

    2023年04月08日
    浏览(48)
  • 用代码实现一个简单计算器

    作者主页: paper jie的博客_CSDN博客-C语言,算法详解领域博主 本文作者: 大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于 《C语言》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造,将C语言基础知识一网打尽,希望可

    2024年02月08日
    浏览(43)
  • Java课设-百行代码实现简易计算器

    Java程序设计 工程实践 ——简易计算器的设计 院、 系 计算机与软件学院 专业 信息安全 姓 名 指导教师 2022年 6 月 11 日 目录: 一、 设计简介 2 1、 设计背景 2 2、 开发工具及环境 2 (1)开发工具及介绍 2 (2)开发环境 2 二、 相关工作 2 1、设计基础 2 2、功能需求 2 3、系统

    2024年02月04日
    浏览(75)
  • 基于Android Studio 实现计算器(简单易上手使用技术多)

    🍅 文章末尾有获取完整项目源码方式 🍅         本项目是一个基于Android Studio和Java语言开发的简单计算器应用。应用包含启动页面、登陆注册页面、首页、计算器页面和我的页面等多个功能模块。         通过这个项目的实践,希望这个项目能够帮助你入门Android开

    2024年04月12日
    浏览(55)
  • 初学编程 第一个小程序Android studio实现计算器功能

    源代码下载:https://gitee.com/zha-yingying/calculator.git 1.建立一个新的Layout,我这里使用的是GridLayout(网格布局),提取屏幕宽度(方便后面设置子控件的宽度)GridLayout的特点是自定义网格布局有几行几列,我们可以将自控件自定义放在第几行第几列。 2.建立一个新的textview(文本

    2023年04月14日
    浏览(68)
  • 移动开发作业三:使用Android studio来实现简单的计算器

    一.实验要求 结合所学内容利用Android studio来设计一个开发实例,这里去我选择做一个简易的计算器,可以初步实现加减乘除。 二.实验功能 该计算器与我们平常手机上的计算器一样,可以进行加减乘除操作。 三.实验过程 1.首先是关于计算器的布局 在layout文件下的drawable文件

    2024年02月02日
    浏览(58)
  • Android Studio:一个简单的计算器app的实现过程<初级>

    📌Android Studio 专栏正在持续更新中,案例的原理图解析、各种模块分析💖这里都有哦,同时也欢迎大家订阅专栏,获取更多详细信息哦✊✊✊ ✨个人主页:零小唬的博客主页 🥂欢迎大家 👍点赞 📨评论 🔔收藏 ✨作者简介:20级计算机专业学生一枚,来自宁夏,可能会去

    2024年02月01日
    浏览(106)
  • 单片机51实现计算器详细代码能自己运行

    实现单字节加减乘除四则运算 1、能通过键盘输入正确键值 2、能进行简单的四则运算 3、能以数码管正确显示数值 4、能重复操作 4.仿真图 如22+96

    2024年02月11日
    浏览(40)
  • 单片机实现简易计算器功能,附有解析与代码

    目录 首先分为根据要实现的功能来选择硬件和软件: 硬件部分 软件部分 输入部分: 计算部分: 连续计算: 源代码示例: 主函数: 键盘输入: LCD1602显示: 蜂鸣器: 延时函数: 首先我们要实现的功能有:多位显示,小数计算,连续计算,符号按错修改,, 用到LCD1602显示

    2024年02月09日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包