本文实例为大家分享了android studio实现简单计算器的具体代码,供大家参考,具体内容如下
1.效果图
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文件
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。