在android中利用 studio实现一个简单的计算器功能

发布时间:2020-11-07 15:35:20

来源:亿速云

阅读:168

作者:Leah

这篇文章将为大家详细讲解有关在android中利用 studio实现一个简单的计算器功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

具体内容如下

1.效果图

2布局代码

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:background="@drawable/jsj1">

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="计算器"

android:textSize="20dp"

android:gravity="center"

android:textColor="#EE4000"/>

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="输入数字"/>

android:id="@+id/ET001"

android:layout_width="match_parent"

android:layout_height="wrap_content"/>

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="运算结果"/>

android:id="@+id/ET002"

android:layout_width="match_parent"

android:layout_height="wrap_content"/>

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="horizontal">

android:layout_marginLeft="5dp"

android:id="@+id/btn001"

android:layout_width="88dp"

android:layout_height="100dp"

android:text="C"

android:textSize="20dp"

android:padding="5dp"

android:background="@drawable/qqqqqqqqqq"/>

android:id="@+id/btn002"

android:layout_width="88dp"

android:layout_height="100dp"

android:text="÷"

android:textSize="20dp"

android:padding="5dp"

android:background="@drawable/qqqqqqqqqq"/>

android:id="@+id/btn003"

android:layout_width="88dp"

android:layout_height="100dp"

android:text="×"

android:textSize="20dp"

android:padding="5dp"

android:background="@drawable/qqqqqqqqqq"/>

android:id="@+id/btn004"

android:layout_width="88dp"

android:layout_height="100dp"

android:text="Cx"

android:textSize="20dp"

android:padding="5dp"

android:background="@drawable/qqqqqqqqqq"/>

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="horizontal">

android:layout_marginLeft="5dp"

android:id="@+id/btn005"

android:layout_width="88dp"

android:layout_height="100dp"

android:text="7"

android:textSize="20dp"

android:padding="5dp"

android:background="@drawable/sssssssssssssss"/>

android:id="@+id/btn006"

android:layout_width="88dp"

android:layout_height="100dp"

android:text="8"

android:textSize="20dp"

android:padding="5dp"

android:background="@drawable/sssssssssssssss"/>

android:id="@+id/btn007"

android:layout_width="88dp"

android:layout_height="100dp"

android:text="9"

android:textSize="20dp"

android:padding="5dp"

android:background="@drawable/sssssssssssssss"/>

android:id="@+id/btn008"

android:layout_width="88dp"

android:layout_height="100dp"

android:text="-"

android:textSize="20dp"

android:padding="5dp"

android:background="@drawable/qqqqqqqqqq"/>

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="horizontal">

android:layout_marginLeft="5dp"

android:id="@+id/btn009"

android:layout_width="88dp"

android:layout_height="100dp"

android:text="4"

android:textSize="20dp"

android:padding="5dp"

android:background="@drawable/sssssssssssssss"/>

android:id="@+id/btn0010"

android:layout_width="88dp"

android:layout_height="100dp"

android:text="5"

android:textSize="20dp"

android:padding="5dp"

android:background="@drawable/sssssssssssssss"/>

android:id="@+id/btn0011"

android:layout_width="88dp"

android:layout_height="100dp"

android:text="6"

android:textSize="20dp"

android:padding="5dp"

android:background="@drawable/sssssssssssssss"/>

android:id="@+id/btn0012"

android:layout_width="88dp"

android:layout_height="100dp"

android:text="+"

android:textSize="20dp"

android:padding="5dp"

android:background="@drawable/qqqqqqqqqq"/>

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="horizontal">

android:layout_marginLeft="5dp"

android:id="@+id/btn0013"

android:layout_width="88dp"

android:layout_height="100dp"

android:text="1"

android:textSize="20dp"

android:padding="5dp"

android:background="@drawable/sssssssssssssss"/>

android:id="@+id/btn0014"

android:layout_width="88dp"

android:layout_height="100dp"

android:text="2"

android:textSize="20dp"

android:padding="5dp"

android:background="@drawable/sssssssssssssss"/>

android:id="@+id/btn0015"

android:layout_width="88dp"

android:layout_height="100dp"

android:text="3"

android:textSize="20dp"

android:padding="5dp"

android:background="@drawable/sssssssssssssss"/>

android:id="@+id/btn0019"

android:layout_width="88dp"

android:layout_height="100dp"

android:text="."

android:textSize="20dp"

android:padding="5dp"

android:background="@drawable/qqqqqqqqqq"/>

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="horizontal">

android:layout_marginLeft="5dp"

android:id="@+id/btn0018"

android:layout_width="88dp"

android:layout_height="100dp"

android:text="0"

android:textSize="20dp"

android:padding="5dp"

android:background="@drawable/sssssssssssssss"/>

android:id="@+id/btn0016"

android:layout_width="265dp"

android:layout_height="100dp"

android:text="="

android:textSize="20dp"

android:padding="5dp"

android:background="#6495ED"/>

3.逻辑代码

package com.example.myzhuoye;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import androidx.annotation.Nullable;

import androidx.appcompat.app.AppCompatActivity;

public class JiSuanJi extends AppCompatActivity implements View.OnClickListener {

//结果

private EditText ET001,ET002;

//数字0-9

private Button btn0018, btn0013,btn0014,btn0015,btn009,btn0010,btn0011,btn005,btn006,btn007;

//运算符,+,-,×,÷,.,=;清除,返回

private Button btn0012,btn008,btn003,btn002,btn0019,btn0016,btn001,btn004;

private String text = "";//保存输入的数字和符号

private Double result = 0.0;//输出结果

@Override

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.layout4);

//结果

ET001=(EditText)findViewById(R.id.ET001);

ET002=(EditText)findViewById(R.id.ET002);

//数字0-9

btn0013=(Button)findViewById(R.id.btn0013);

btn0014=(Button)findViewById(R.id.btn0014);

btn0015=(Button)findViewById(R.id.btn0015);

btn009=(Button)findViewById(R.id.btn009);

btn0010=(Button)findViewById(R.id.btn0010);

btn0011=(Button)findViewById(R.id.btn0011);

btn005=(Button)findViewById(R.id.btn005);

btn006=(Button)findViewById(R.id.btn006);

btn007=(Button)findViewById(R.id.btn007);

btn0018=(Button)findViewById(R.id.btn0018);

//运算符

btn004=(Button)findViewById(R.id.btn004);

btn0012=(Button)findViewById(R.id.btn0012);

btn008=(Button)findViewById(R.id.btn008);

btn003=(Button)findViewById(R.id.btn003);

btn002=(Button)findViewById(R.id.btn002);

btn0019=(Button)findViewById(R.id.btn0019);

btn0016=(Button)findViewById(R.id.btn0016);

btn001=(Button)findViewById(R.id.btn001);

//添加点击事件

btn0013.setOnClickListener((View.OnClickListener) this);

btn0014.setOnClickListener((View.OnClickListener) this);

btn0015.setOnClickListener((View.OnClickListener) this);

btn009.setOnClickListener((View.OnClickListener) this);

btn0010.setOnClickListener((View.OnClickListener) this);

btn0011.setOnClickListener((View.OnClickListener) this);

btn005.setOnClickListener((View.OnClickListener) this);

btn006.setOnClickListener((View.OnClickListener) this);

btn007.setOnClickListener((View.OnClickListener) this);

btn0018.setOnClickListener((View.OnClickListener) this);

btn0012.setOnClickListener((View.OnClickListener) this);

btn008.setOnClickListener((View.OnClickListener) this);

btn003.setOnClickListener((View.OnClickListener) this);

btn002.setOnClickListener((View.OnClickListener) this);

btn0019.setOnClickListener((View.OnClickListener) this);

btn0016.setOnClickListener((View.OnClickListener) this);

btn001.setOnClickListener((View.OnClickListener) this);

btn004.setOnClickListener((View.OnClickListener) this);

}

@Override

public void onClick(View v) {

String string=ET001.getText().toString();

switch (v.getId()){

case R.id.btn0018://0

num(0);

break;

case R.id.btn0013://1

num(1);

break;

case R.id.btn0014://2

num(2);

break;

case R.id.btn0015://3

num(3);

break;

case R.id.btn009://4

num(4);

break;

case R.id.btn0010://5

num(5);

break;

case R.id.btn0011://6

num(6);

break;

case R.id.btn005://7

num(7);

break;

case R.id.btn006://8

num(8);

break;

case R.id.btn007://9

num(9);

break;

case R.id.btn0019://.

dot();

break;

case R.id.btn0012://+

add();

break;

case R.id.btn008://-

sub();

break;

case R.id.btn003://"*"

multiply();

break;

case R.id.btn002://除

divide();

break;

case R.id.btn001://清除

clear();

break;

case R.id.btn004://返回

back();

break;

//计算结果

case R.id.btn0016://结果

result();

break;

default:

break;

}

ET001.setText(text);

ET002.setText(String.valueOf(result));

}

private void num(int i) {

text = text + String.valueOf(i);

}

private void dot() {

int a=text.length();

String s01="+";

String s02="-";

String s03="×";

String s04="÷";

String s05=".";

if (a!=0) {

String s=text.substring(a-1,a);

String s0=text.substring(0,a-1);

if (s01.equals(s) || s02.equals(s) || s03.equals(s) || s04.equals(s) || s05.equals(s)) {

text = s0+".";

}else {

text += ".";

}

} else {

text = "";

result =0.0;

ET001.setText("");

ET002.setText("");

}

}

private void clear() {

text = "";

result =0.0;

ET001.setText("");

ET002.setText("");

}

private void back() {

if (text.length()!=0){

String str = text.substring(0, text.length()-1);

text = str;

}

;

}

private void add() {

int a=text.length();

String s01="+";

String s02="-";

String s03="×";

String s04="÷";

String s05=".";

if (a!=0) {

String s=text.substring(a-1,a);

String s0=text.substring(0,a-1);

if (s01.equals(s) || s02.equals(s) || s03.equals(s) || s04.equals(s) || s05.equals(s)) {

text = s0+"+";

}else {

text += "+";

}

} else {

text = "";

result =0.0;

ET001.setText("");

ET002.setText("");

}

}

private void sub() {

int a=text.length();

String s01="+";

String s02="-";

String s03="×";

String s04="÷";

String s05=".";

if (a!=0) {

String s=text.substring(a-1,a);

String s0=text.substring(0,a-1);

if (s01.equals(s) || s02.equals(s) || s03.equals(s) || s04.equals(s) || s05.equals(s)) {

text = s0+"-";

}else {

text += "-";

}

} else {

text = "";

result =0.0;

ET001.setText("");

ET002.setText("");

}

}

private void multiply() {

int a=text.length();

String s01="+";

String s02="-";

String s03="×";

String s04="÷";

String s05=".";

if (a!=0) {

String s=text.substring(a-1,a);

String s0=text.substring(0,a-1);

if (s01.equals(s) || s02.equals(s) || s03.equals(s) || s04.equals(s) || s05.equals(s)) {

text = s0+"×";

}else {

text += "×";

}

} else {

text = "";

result =0.0;

ET001.setText("");

ET002.setText("");

}

}

private void divide() {

int a=text.length();

String s01="+";

String s02="-";

String s03="×";

String s04="÷";

String s05=".";

if (a!=0) {

String s=text.substring(a-1,a);

String s0=text.substring(0,a-1);

if (s01.equals(s) || s02.equals(s) || s03.equals(s) || s04.equals(s) || s05.equals(s)) {

text = s0+"÷";

}else {

text += "÷";

}

} else {

text = "";

result =0.0;

ET001.setText("");

ET002.setText("");

}

}

//计算输出结果

private void result() {

result = testOperation(text);

}

public Double testOperation(String s){

//分割字符然后放进数组

String s1 =s.replace("+","-");

String[] str = s1.split("-");

double total1=0;

//先遍历数组,把里面的乘除结果算出来

for(String str1:str){

if(str1.contains("×")||str1.contains("÷")){

double total = 0;

for(int i =0;i

int count =1;

a:for(int j =i+1;j

char c =str1.charAt(j);

if(c=='×'||c=='÷'){

break a;

}else{

count++;

}

}

//将数字截取出来

String s2 =str1.substring(i,i+count);

double d = Double.parseDouble(s2);

if(i==0){

total = d;

}else{

char c1 = str1.charAt(i-1);

if(c1=='×'){

total*=d;

}else if(c1=='÷'){

//如果除数为0,直接返回null;

if(d == 0)

return null;

total/=d;

}

}

i+=count+1;

}

s= s.replace(str1, total+"");

}

}

//进行加减运算

for(int i =0;i

int count =1;

a:for(int j=i+1;j

char c = s.charAt(j);

if(c=='+'||c=='-'){

break a;

}else{

count++;

}

}

String s3= s.substring(i,i+count);

double d2 = Double.parseDouble(s3);

if(i==0){

total1 = d2;

}else{

char c = s.charAt(i-1);

if(c=='+'){

total1+=d2;

}else if(c=='-'){

total1-=d2;

}

}

i+=count;

}

return total1;

}

}

4.XML文件

关于在android中利用 studio实现一个简单的计算器功能就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

android计算器功能实现,在android中利用 studio实现一个简单的计算器功能相关推荐

  1. android开发 转跳功能,如何在Android中利用Intent实现一个页面跳转功能

    如何在Android中利用Intent实现一个页面跳转功能 发布时间:2021-02-20 17:06:31 来源:亿速云 阅读:113 作者:Leah 本篇文章为大家展示了如何在Android中利用 ...

  2. php利用ajax文件上传,如何在PHP中利用AjaxForm实现一个文件上传功能

    如何在PHP中利用AjaxForm实现一个文件上传功能 发布时间:2020-12-18 14:52:38 来源:亿速云 阅读:94 作者:Leah 如何在PHP中利用AjaxForm实现一个文件上传功 ...

  3. android 画布旋转,Android-在安卓开发中,如何实现一个简单的图片旋转

    图像的旋转有很多方法,除了常见的使用动画和矩阵,还可以通过操作背景画布本身来旋转 现将正常的图像绘制到画布中,保存一次画布后整体旋转,然后再恢复画布,此时的图像便得到了旋转的效果,google 官方也 ...

  4. 利用java做一个简单的计算器

    共两个类.还只是完成+.-.×.÷运算而已. GUI只是用了AWT,很简单,相信一看就能懂了. Calculator.java public class Calculator{ private Str ...

  5. 【Vue3.0实战逐步深入系列】扩展投票功能基于elementui进行组件封装实现一个简单的问卷调查功能

    [千字长文,熬夜更新,原创不易,多多支持,感谢大家] 前言 小伙伴们大家好.在前面一偏文章中我们把投票功能进行了简单的改造:引入了axios第三方库并进行了二次封装用于模拟请求服务器数据.同时添加了一 ...

  6. android实现计算器功能吗,利用Android实现一个简单的计算器功能

    利用Android实现一个简单的计算器功能 发布时间:2020-11-20 16:25:01 来源:亿速云 阅读:90 作者:Leah 今天就跟大家聊聊有关利用Android实现一个简单的计算器功能, ...

  7. android 悬浮按钮 功能实现,怎么在Android中利用FloatingActionButton实现一个悬浮按钮效果...

    怎么在Android中利用FloatingActionButton实现一个悬浮按钮效果 发布时间:2020-12-02 17:41:30 来源:亿速云 阅读:238 作者:Leah 今天就跟大家聊聊有 ...

  8. android listview下拉动画效果,Android开发中利用ListView实现一个渐变式的下拉刷新动画...

    Android开发中利用ListView实现一个渐变式的下拉刷新动画 发布时间:2020-11-23 16:50:31 来源:亿速云 阅读:80 作者:Leah 本篇文章给大家分享的是有关Androi ...

  9. android打地鼠设计报告,android开发中利用handler制作一个打地鼠小游戏

    android开发中利用handler制作一个打地鼠小游戏 发布时间:2020-11-25 15:21:11 来源:亿速云 阅读:136 作者:Leah 这期内容当中小编将会给大家带来有关androi ...

最新文章

  1. VS上配置opencv249所添加的附加依赖项
  2. Spring-redis基础配置
  3. python下载文件保存_python 3.3 下载固定链接文件并保存的方法
  4. php学习之------[运算符相关概念]
  5. 廖雪峰python教程书-Python 爬虫:把廖雪峰的教程转换成 PDF 电子书
  6. linux驱动开发的经典书籍
  7. QT的QOpenGLFunctions类的使用
  8. 用matlab画大数据曲线_基于MATLAB的大数据分析
  9. IOC操作Bean管理XML方式(注入空值和特殊符号)
  10. ExtJS Grid 与 Asp.NET 通信
  11. 【还是回来了】博客搬家--https://cangbean.github.io
  12. (一)云计算OpenStack介绍
  13. 微课|中学生可以这样学Python(2.2.2节+2.2.5节):关系运算符和集合运算符
  14. c#之线程总结(一)
  15. c4d——界面认识、视图快捷键、常用的快捷键
  16. 关于List转Json的简单方法
  17. 微信小程序地图开发电子围栏与后端联调
  18. MinDoc安装指南(v0.12)
  19. Mac vmvare vmdk文件使用
  20. 双绞线的制作方式详解

热门文章

  1. 安卓Android版AutoCAD WS发布
  2. 全球与中国动臂和剪式举升机市场深度研究分析报告
  3. 2016年的美国虚拟经济策略的对全球的影响
  4. 程序员如何摆脱平庸?
  5. 艺术二维码生成神器!
  6. 用通通通作代理在局域网上QQ
  7. 空间?不是QQ空间,我们今天说网站空间
  8. 2165: 黄金矿工(有依赖的背包转化为分组背包)
  9. 微信小程序识别当前小程序的版本,开发版、体验版、线上版
  10. Windows XP原英文版系统下载及安装