android计算器功能实现,在android中利用 studio实现一个简单的计算器功能
在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实现一个简单的计算器功能相关推荐
- android开发 转跳功能,如何在Android中利用Intent实现一个页面跳转功能
如何在Android中利用Intent实现一个页面跳转功能 发布时间:2021-02-20 17:06:31 来源:亿速云 阅读:113 作者:Leah 本篇文章为大家展示了如何在Android中利用 ...
- php利用ajax文件上传,如何在PHP中利用AjaxForm实现一个文件上传功能
如何在PHP中利用AjaxForm实现一个文件上传功能 发布时间:2020-12-18 14:52:38 来源:亿速云 阅读:94 作者:Leah 如何在PHP中利用AjaxForm实现一个文件上传功 ...
- android 画布旋转,Android-在安卓开发中,如何实现一个简单的图片旋转
图像的旋转有很多方法,除了常见的使用动画和矩阵,还可以通过操作背景画布本身来旋转 现将正常的图像绘制到画布中,保存一次画布后整体旋转,然后再恢复画布,此时的图像便得到了旋转的效果,google 官方也 ...
- 利用java做一个简单的计算器
共两个类.还只是完成+.-.×.÷运算而已. GUI只是用了AWT,很简单,相信一看就能懂了. Calculator.java public class Calculator{ private Str ...
- 【Vue3.0实战逐步深入系列】扩展投票功能基于elementui进行组件封装实现一个简单的问卷调查功能
[千字长文,熬夜更新,原创不易,多多支持,感谢大家] 前言 小伙伴们大家好.在前面一偏文章中我们把投票功能进行了简单的改造:引入了axios第三方库并进行了二次封装用于模拟请求服务器数据.同时添加了一 ...
- android实现计算器功能吗,利用Android实现一个简单的计算器功能
利用Android实现一个简单的计算器功能 发布时间:2020-11-20 16:25:01 来源:亿速云 阅读:90 作者:Leah 今天就跟大家聊聊有关利用Android实现一个简单的计算器功能, ...
- android 悬浮按钮 功能实现,怎么在Android中利用FloatingActionButton实现一个悬浮按钮效果...
怎么在Android中利用FloatingActionButton实现一个悬浮按钮效果 发布时间:2020-12-02 17:41:30 来源:亿速云 阅读:238 作者:Leah 今天就跟大家聊聊有 ...
- android listview下拉动画效果,Android开发中利用ListView实现一个渐变式的下拉刷新动画...
Android开发中利用ListView实现一个渐变式的下拉刷新动画 发布时间:2020-11-23 16:50:31 来源:亿速云 阅读:80 作者:Leah 本篇文章给大家分享的是有关Androi ...
- android打地鼠设计报告,android开发中利用handler制作一个打地鼠小游戏
android开发中利用handler制作一个打地鼠小游戏 发布时间:2020-11-25 15:21:11 来源:亿速云 阅读:136 作者:Leah 这期内容当中小编将会给大家带来有关androi ...
最新文章
- VS上配置opencv249所添加的附加依赖项
- Spring-redis基础配置
- python下载文件保存_python 3.3 下载固定链接文件并保存的方法
- php学习之------[运算符相关概念]
- 廖雪峰python教程书-Python 爬虫:把廖雪峰的教程转换成 PDF 电子书
- linux驱动开发的经典书籍
- QT的QOpenGLFunctions类的使用
- 用matlab画大数据曲线_基于MATLAB的大数据分析
- IOC操作Bean管理XML方式(注入空值和特殊符号)
- ExtJS Grid 与 Asp.NET 通信
- 【还是回来了】博客搬家--https://cangbean.github.io
- (一)云计算OpenStack介绍
- 微课|中学生可以这样学Python(2.2.2节+2.2.5节):关系运算符和集合运算符
- c#之线程总结(一)
- c4d——界面认识、视图快捷键、常用的快捷键
- 关于List转Json的简单方法
- 微信小程序地图开发电子围栏与后端联调
- MinDoc安装指南(v0.12)
- Mac vmvare vmdk文件使用
- 双绞线的制作方式详解