(含完整代码)简易Android计算器的实现

文章结构

      • 1、项目要求
      • 2、实现思路
      • 3、代码实现
          • 主文件
          • 子文件
      • 4、效果预览

1、项目要求

其实老师的要求就是做一个简易的计算器,有两个文本框,一个按钮,然后实现加法即可。
但是我还是想做一个比较好康的计算器(如下),也可以借此写个博客和大家分享一下
计算器

2、实现思路

思路就是做一个和平时手机用的计算器差不多的即可。
六行:第一行是显示计算过程和结果的
   第二行道第六行是放各种按钮的,直接看效果预览就知道了
By the way,这里我的计算器只是个很粗糙的版本,我已经把UI都搞好了,并且把一些简单的计算都做好了,大家只需要完善一下就可以达到自己的需求了!各位都是学过Java的,相信对大家来说应该不难吧!
代码太多,所以分为
   主文件:MainActivity.java、activity_main.xml
   子文件:
        子文件内容

3、代码实现

主文件

废话不多说,直接上代码
MainActivity.java(这是java文件的代码内容):

package cn.hillain.myapplication;import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;public class MainActivity2 extends AppCompatActivity {private TextView input;private TextView result;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);input = this.findViewById(R.id.input);result = this.findViewById(R.id.result);}String input1 = "";String oper = "";String input2 = "";boolean flag = false;boolean input1_flag = false;public void oneOnClick(View view){if(view instanceof TextView){String oneText = ((TextView)view).getText().toString();if(flag){switch (oneText){case "C":input.setText("");result.setText("");input1 = "";input2 = "";oper ="";input1_flag=false;flag=false;break;}}else{switch (oneText){case "+/-":break;case "%":break;case "1":if(!input1_flag){input1 += "1";input.setText(input1);}else{input2 += "1";input.setText(input1+oper+input2);}break;case "2":if(!input1_flag){input1 += "2";input.setText(input1);}else{input2 += "2";input.setText(input1+oper+input2);}break;case "3":if(!input1_flag){input1 += "3";input.setText(input1);}else{input2 += "3";input.setText(input1+oper+input2);}break;case "4":if(!input1_flag){input1 += "4";input.setText(input1);}else{input2 += "4";input.setText(input1+oper+input2);}break;case "5":if(!input1_flag){input1 += "5";input.setText(input1);}else{input2 += "5";input.setText(input1+oper+input2);}break;case "6":if(!input1_flag){input1 += "6";input.setText(input1);}else{input2 += "6";input.setText(input1+oper+input2);}break;case "7":if(!input1_flag){input1 += "7";input.setText(input1);}else{input2 += "7";input.setText(input1+oper+input2);}break;case "8":if(!input1_flag){input1 += "8";input.setText(input1);}else{input2 += "8";input.setText(input1+oper+input2);}break;case "9":if(!input1_flag){input1 += "9";input.setText(input1);}else{input2 += "9";input.setText(input1+oper+input2);}break;case "0":if(!input1_flag){input1 += "0";input.setText(input1);}else{input2 += "0";input.setText(input1+oper+input2);}break;case ".":if(!input1_flag){input1 += ".";input.setText(input1);}else{input2 += ".";input.setText(input1+oper+input2);}break;case "÷":oper = "÷";input1_flag = true;input.setText(input1+oper+input2);break;case "*":oper = "*";input1_flag = true;input.setText(input1+oper+input2);break;case "-":oper = "-";input1_flag = true;input.setText(input1+oper+input2);break;case "+":oper = "+";input1_flag = true;input.setText(input1+oper+input2);break;case "=":float num1 = Float.valueOf(input1).floatValue();float num2 = Float.valueOf(input2).floatValue();if(oper.equals("+")){flag = true;result.setText(String.valueOf(num1+num2));}else if(oper.equals("-")){flag = true;result.setText(String.valueOf(num1-num2));}else if(oper.equals("*")){flag = true;result.setText(String.valueOf(num1*num2));}if(oper.equals("÷")){if (num2 == 0) {Toast.makeText(MainActivity2.this, "除数不能为0", Toast.LENGTH_LONG).show();}else{flag = true;result.setText(String.valueOf(num1/num2));}}break;}}}}
}

activity_main.xml(layout中的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"><LinearLayoutandroid:layout_width="match_parent"android:orientation="horizontal"android:layout_height="100dp"><TextViewandroid:id="@+id/input"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="10dp"android:layout_marginTop="10dp"android:text=""android:textSize="30sp" /><TextViewandroid:id="@+id/result"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="195dp"android:layout_marginTop="50dp"android:text=""android:textSize="30sp" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:orientation="horizontal"android:layout_height="80dp"><TextViewandroid:id="@+id/C"android:onClick="oneOnClick"android:layout_width="0dp"android:layout_weight="1"android:layout_height="match_parent"android:gravity="center"android:textSize="30sp"android:background="@drawable/selector_gray1"android:text="C"/><TextViewandroid:id="@+id/zf"android:onClick="oneOnClick"android:layout_width="0dp"android:layout_weight="1"android:layout_height="match_parent"android:gravity="center"android:textSize="30sp"android:background="@drawable/selector_gray1"android:text="+/-"/><TextViewandroid:id="@+id/mo"android:onClick="oneOnClick"android:layout_width="0dp"android:layout_weight="1"android:layout_height="match_parent"android:gravity="center"android:textSize="30sp"android:background="@drawable/selector_gray1"android:text="%"/><TextViewandroid:id="@+id/chu"android:onClick="oneOnClick"android:layout_width="0dp"android:layout_weight="1"android:layout_height="match_parent"android:gravity="center"android:textSize="30sp"android:background="@drawable/selector_gray3"android:text="÷"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:orientation="horizontal"android:layout_height="80dp"><TextViewandroid:id="@+id/one"android:onClick="oneOnClick"android:layout_width="0dp"android:layout_weight="1"android:layout_height="match_parent"android:gravity="center"android:textSize="30sp"android:background="@drawable/selector_gray2"android:text="1"/><TextViewandroid:id="@+id/two"android:onClick="oneOnClick"android:layout_width="0dp"android:layout_weight="1"android:layout_height="match_parent"android:gravity="center"android:textSize="30sp"android:background="@drawable/selector_gray2"android:text="2"/><TextViewandroid:id="@+id/three"android:onClick="oneOnClick"android:layout_width="0dp"android:layout_weight="1"android:layout_height="match_parent"android:gravity="center"android:textSize="30sp"android:background="@drawable/selector_gray2"android:text="3"/><TextViewandroid:id="@+id/cheng"android:onClick="oneOnClick"android:layout_width="0dp"android:layout_weight="1"android:layout_height="match_parent"android:gravity="center"android:textSize="30sp"android:background="@drawable/selector_gray3"android:text="*"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:orientation="horizontal"android:layout_height="80dp"><TextViewandroid:id="@+id/four"android:onClick="oneOnClick"android:layout_width="0dp"android:layout_weight="1"android:layout_height="match_parent"android:gravity="center"android:textSize="30sp"android:background="@drawable/selector_gray2"android:text="4"/><TextViewandroid:id="@+id/five"android:onClick="oneOnClick"android:layout_width="0dp"android:layout_weight="1"android:layout_height="match_parent"android:gravity="center"android:textSize="30sp"android:background="@drawable/selector_gray2"android:text="5"/><TextViewandroid:id="@+id/six"android:onClick="oneOnClick"android:layout_width="0dp"android:layout_weight="1"android:layout_height="match_parent"android:gravity="center"android:textSize="30sp"android:background="@drawable/selector_gray2"android:text="6"/><TextViewandroid:id="@+id/jian"android:onClick="oneOnClick"android:layout_width="0dp"android:layout_weight="1"android:layout_height="match_parent"android:gravity="center"android:textSize="30sp"android:background="@drawable/selector_gray3"android:text="-"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:orientation="horizontal"android:layout_height="80dp"><TextViewandroid:id="@+id/seven"android:onClick="oneOnClick"android:layout_width="0dp"android:layout_weight="1"android:layout_height="match_parent"android:gravity="center"android:textSize="30sp"android:background="@drawable/selector_gray2"android:text="7"/><TextViewandroid:id="@+id/eight"android:onClick="oneOnClick"android:layout_width="0dp"android:layout_weight="1"android:layout_height="match_parent"android:gravity="center"android:textSize="30sp"android:background="@drawable/selector_gray2"android:text="8"/><TextViewandroid:id="@+id/nine"android:onClick="oneOnClick"android:layout_width="0dp"android:layout_weight="1"android:layout_height="match_parent"android:gravity="center"android:textSize="30sp"android:background="@drawable/selector_gray2"android:text="9"/><TextViewandroid:id="@+id/jia"android:onClick="oneOnClick"android:layout_width="0dp"android:layout_weight="1"android:layout_height="match_parent"android:gravity="center"android:textSize="30sp"android:background="@drawable/selector_gray3"android:text="+"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:orientation="horizontal"android:layout_height="80dp"><TextViewandroid:id="@+id/zero"android:onClick="oneOnClick"android:layout_width="0dp"android:layout_weight="2"android:layout_height="match_parent"android:gravity="center_vertical"android:paddingLeft="44dp"android:textSize="30sp"android:background="@drawable/selector_gray2"android:text="0"/><TextViewandroid:id="@+id/dian"android:onClick="oneOnClick"android:layout_width="0dp"android:layout_weight="1"android:layout_height="match_parent"android:gravity="center"android:textSize="30sp"android:background="@drawable/selector_gray2"android:text="."/><TextViewandroid:id="@+id/dengyu"android:onClick="oneOnClick"android:layout_width="0dp"android:layout_weight="1"android:layout_height="match_parent"android:gravity="center"android:textSize="30sp"android:background="@drawable/selector_gray3"android:text="="/></LinearLayout>
</LinearLayout>
子文件

selector_gray1.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_pressed="true"android:drawable="@drawable/shape_rectangle_gray1"/><item android:drawable="@drawable/shape_rectangle_darkgray"/>
</selector>

selector_gray2.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_pressed="true"android:drawable="@drawable/shape_rectangle_gray1"/><item android:drawable="@drawable/shape_rectangle_lightgray"/>
</selector>

selector_gray3.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_pressed="true"android:drawable="@drawable/shape_rectangle_gray2"/><item android:drawable="@drawable/shape_rectangle_orange"/>
</selector>

shape_rectangle_darkgray.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><solid android:color="#D6D6D6"/><stroke android:color="#A1A1A1" android:width="1dp"/>
</shape>

shape_rectangle_gray1.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><solid android:color="#999999"/><stroke android:color="#A1A1A1" android:width="1dp"/>
</shape>

shape_rectangle_gray2.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><solid android:color="#b55f1c"/><stroke android:color="#A1A1A1" android:width="1dp"/>
</shape>

shape_rectangle_lightgray.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><solid android:color="#E0E0E0"/><stroke android:color="#A1A1A1" android:width="1dp"/>
</shape>

shape_rectangle_orange.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><solid android:color="#FF8D27"/><stroke android:color="#A1A1A1" android:width="1dp"/>
</shape>

4、效果预览

这么多代码,没有预览,估计大家都不想复制
计算器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/65624.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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

实现效果 一、xml布局文件 这里采用线性布局&#xff0c;关于计算器的布局&#xff0c;可以查看之前的文章。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"and…

Qt简易计算器的代码实现

大二用qt写的简易计算机&#xff0c;已经修改完bug,请放心食用 输入的时候一定用按钮&#xff0c;不要直接在文本框中输入 在qt中新建这几个文件&#xff0c;运行就OK了 main.cpp #include "calculator.h" #include <QApplication>int main(int argc, char *…

chatgpt赋能python:如何打开Python黑色界面

如何打开Python黑色界面 Python黑色界面是一个流行的Python环境编辑器。很多Python开发者首选Python黑色界面来编写和运行Python程序。但是&#xff0c;很多人还不知道如何打开Python黑色界面。在这篇文章中&#xff0c;我们将介绍如何打开Python黑色界面&#xff0c;以及一些…

【无标题】分享3款好用的简易视频剪辑软件

分享3款好用的小白视频剪辑软件 本人是个短视频爱好者&#xff0c;经常需要剪辑视频&#xff0c;在实际操作中发现&#xff0c;那些专业的视频剪辑软件操作非常复杂&#xff0c;不易操作&#xff0c;而且文件又大。那些简单的视频剪辑软件小而精巧&#xff0c;操作方便&#xf…

怎么剪切视频中的一部分?不如试试这个软件

怎么剪切视频中的一部分&#xff1f;我们在进行视频剪辑的时候&#xff0c;需要导入大量的素材&#xff0c;我们不可能完整的保留整段素材。通常情况下&#xff0c;我们需要对已有的素材进行编辑分割。这里小编就来给大家介绍在电脑上对视频进行分割的方法。 怎么剪切视频中的一…

小众但意外觉得蛮好用的剪辑软件!纯良心分享

爱剪辑 有开屏广告&#xff0c;一共3个界面&#xff1a;首页、剪同款、我的。 剪辑、配乐、字幕、滤镜、加速、贴纸、配音等主流功能都有。 特色功能有剪裁视频、倒放视频、视频旋转、视频转换GIF、转场、提取音频、画中画等。 还可以拼接视频&#xff0c;不过不支持FLV等小众文…

AI伪原创混剪软件脚本,短视频伪原创剪辑工具必备神器

AI伪原创混剪脚本&#xff0c;伪原创剪辑必备神器【永久脚本详细教程】 AI伪原创混剪软件脚本&#xff0c;短视频伪原创剪辑工具必备神器 设备需求&#xff1a;电脑 软件截图&#xff1a; -------------------------------- 文章分享者&#xff1a;Linxiaoyu2022 文章的来源…

剪映电脑版超简单使用教程Mac

相机 我主要用到的两个键 点击开始创作导入本地视频 导入本地视频 将素材拖拽到时间线上 时间线面板操作 撤销、恢复、分割 撤销上一次操作也可以用快捷键 command z 定格、倒放、镜像、裁剪 剃刀 点击菜单的分割可以出来一个剃刀&#xff0c;分割更方便 选择模式 …

创业创业,有点风险,读取数据做个商务分析

1、起因 过完年了,作为程序也很老了,所以想搞个副业看看,但是盲目的创业是不行的,鲁迅先生说过:方向大于努力,所以选对方向很重要,数据调研第一步,不能盲目出招,浪费时间,浪费精力,最主要浪费我的血汗钱。 上班的时间基本都在点外卖,所以想做做外卖,因为自己是小…

精选个人创业计划

精选个人创业计划精选篇1 一、企业概况 以突出“新鲜”“精致”为主要特色。坐落于河北区昆纬路的一个小店&#xff0c;主营鲜花与礼品的零售。它没有亮丽的装潢设计&#xff0c;而是着重朴实的风格&#xff0c;突出了产品的“精”与“美”&#xff0c;成为人们五彩斑斓生活中不…

创业合伙人十个核心问题

导读&#xff1a; 我们见到&#xff0c;很多创业企业的股权分配&#xff0c;都是“时间的错位”&#xff1a;根据创业团队当下的贡献&#xff0c;去分配公司未来的利益。创业初期&#xff0c;不好评估各自贡献&#xff0c;创业团队的早期出资就成了评估团队贡献的核心指标。这导…

技术人员如何创业(1)---产品及想法

不得不说这是个浮躁的社会&#xff0c;人人在这个社会都想暴富或者成名。在这些引诱的驱使下很多人都脱离了原来的稳定工作创业。前几天看了《中国合伙人》&#xff0c;故事讲到了几个大学生从校园到工作、再到创办了一个伟大的企业&#xff0c;这个故事更加激励了创业大军的壮…

创业第一步:如何写好商业计划书

即使你的项目不需要融资&#xff0c;你也把标准商业计划书作为一个工具模板来应用&#xff0c;帮助更全面的盘点你要做的事情。 撰写一份性感的商业计划书如同造房子&#xff1a;第一步是科学设计&#xff0c;打好结构&#xff08;有清晰的撰写逻辑&#xff09;&#xff1b;第…

html表白代码!

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>跳动爱心</title><style>*{padding: 0;margin: 0;}body{background-color: pink;}#frame{position: relative;width: 400px;height: 300px…

html表白代码大全_100条代码,拿去“表白”

❤ 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f482; 作者主页: 【进入主页—&#x1f680;获取更多源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;HTML5网页期末作业 (1000套) 】 &#x1…

html表白代码

目录 一.引言二.表白效果展示1.惊喜表白2.烟花表白3.玫瑰花表白4.心形表白5.心加文字6.炫酷的特效 三.点赞收藏评论找我拿源码(24小时之内回复) 一.引言 我们可以用一下好看的网页来表白&#xff0c;下面就有我觉得很有趣的表白代码。评论直接找我要源码也行。(收藏➕点赞) 二.…

表白专用代码拿走不谢

%数学之心 figure; clc; x-2:0.01:2; ysqrt(2*sqrt(x.^2)-x.^2); zasin(abs(x)-1)-pi./2; plot(x,y); grid on; hold on;%在一个图中画多个图 plot(x,z); title(); legend(心);2021.2.25追加 <!DOCTYPE html> <html lang"en"> <head><meta cha…

一个贼简单的代码表白

前一阵网上挺火的各种表白代码&#xff0c; 自己学着也做了一个 记事本编写&#xff0c;后缀改为vbs 就能运行了。 &#xff08;文章最后边有个百度云盘链接&#xff0c;可以直接下载。或者去我上传的资源也能免费下载&#xff09; &#xff08;其中有一串代码会关机的呦&#…

html,实现心动的表白代码

今天看到多年年前的大佬写的 js表白代码&#xff0c;觉得不错&#xff0c;分析给大家 代码在这宫里 Love <link type"text/css" rel"stylesheet" href"./Love_files/default.css"><script type"text/javascript" src".…

用Python给学弟准备追女神要用的多种流行的表白爱心代码【源码】

本文将介绍利用Python画多种不同的爱心形态&#xff0c;表白代码看这一篇文章就够啦&#xff0c;有感兴趣的朋友可以收藏起来。 1、三维爱心 效果图&#xff1a; 首先安装matplotlib 参考代码&#xff1a; #!/usr/bin/env python3 from mpl_toolkits.mplot3d import Axes3…