Android实现有声计算器代码,android studio实现简单的计算器(无bug)

本文实例为大家分享了android studio实现简单计算器的具体代码,供大家参考,具体内容如下

1.效果图

869eac91ebee3b32f96f094e51de893d.png

2布局代码

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

4.XML文件

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值