1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > android计算器功能实现 在android中利用 studio实现一个简单的计算器功能

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

时间:2019-04-19 05:15:48

相关推荐

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

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

发布时间:-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实现一个简单的计算器功能就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。