Android studio开发实现计算器功能
时间:2022-11-25 10:39:53|栏目:Android代码|点击: 次
Android移动开发实现简单计算器功能,供大家参考,具体内容如下
前言
android 开发小实验
android 移动开发实现 简易计算器功能
小白也能轻松上手,复制粘贴就可使用
使用工具
Android Studio 或者 intellij idea
首先体验一下结果
预览图
源码
前端页面布局
activity_calculator.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" android:background="@drawable/bg2" > <TextView android:layout_width="410dp" android:layout_height="60dp" android:text="计算器" android:textSize="35dp" android:gravity="center" android:background="#A6EFEF" > </TextView> <TextView android:id="@+id/text_show" android:layout_width="410dp" android:layout_height="80dp" android:background="#EAB9B9" android:textSize="30dp" /> <EditText android:id="@+id/ediText" android:layout_width="410dp" android:layout_height="70dp" android:layout_marginBottom="10dp" android:background="#EAB9B9" android:editable="false" android:gravity="right|center_vertical" android:paddingRight="20dp" android:hint="请输入数字" android:textSize="30sp" /> <GridLayout android:layout_width="410dp" android:layout_height="400dp" android:columnCount="5" android:rowCount="6"> <Button android:id="@+id/button6" android:layout_width="80dp" android:layout_height="wrap_content" android:text="←" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/button7" android:layout_width="80dp" android:layout_height="wrap_content" android:text="CE" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/button8" android:layout_width="80dp" android:layout_height="wrap_content" android:text="C" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/button9" android:layout_width="80dp" android:layout_height="wrap_content" android:text="±" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/button10" android:layout_width="80dp" android:layout_height="wrap_content" android:text="√" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/nine" android:layout_width="80dp" android:layout_height="wrap_content" android:text="9" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/eight" android:layout_width="80dp" android:layout_height="wrap_content" android:text="8" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/seven" android:layout_width="80dp" android:layout_height="wrap_content" android:text="7" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/divider" android:layout_width="80dp" android:layout_height="wrap_content" android:text="/" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/button15" android:layout_width="80dp" android:layout_height="wrap_content" android:text="%" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/four" android:layout_width="80dp" android:layout_height="wrap_content" android:text="4" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/five" android:layout_width="80dp" android:layout_height="wrap_content" android:text="5" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/six" android:layout_width="80dp" android:layout_height="wrap_content" android:text="6" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/multiply" android:layout_width="80dp" android:layout_height="wrap_content" android:text="*" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/button20" android:layout_width="80dp" android:layout_height="wrap_content" android:text="1/X" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/one" android:layout_width="80dp" android:layout_height="wrap_content" android:text="1" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/two" android:layout_width="80dp" android:layout_height="wrap_content" android:text="2" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/three" android:layout_width="80dp" android:layout_height="wrap_content" android:text="3" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/minus" android:layout_width="80dp" android:layout_height="wrap_content" android:text="-" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/equal" android:layout_width="80dp" android:layout_height="100dp" android:layout_rowSpan="2" android:text="=" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/zero" android:layout_width="160dp" android:layout_height="wrap_content" android:layout_columnSpan="2" android:text="0" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/point" android:layout_width="80dp" android:layout_height="wrap_content" android:text="." android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/add" android:layout_width="80dp" android:layout_height="wrap_content" android:text="+" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> </GridLayout> </LinearLayout>
后端源码
CalculatorActivity.java
package com.example.myappch5; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.app.Activity; import android.view.View; import android.widget.Button; import android.widget.EditText; public class CalculatorActivity extends Activity implements View.OnClickListener{ //数字0-9 Button number_0; Button number_1; Button number_2; Button number_3; Button number_4; Button number_5; Button number_6; Button number_7; Button number_8; Button number_9; //运算符 Button add; //+ Button minus; //- Button mul; //* Button divide; //除 Button equal; //= Button point; //小数点 //清除 Button det; boolean clean; //清空标识 EditText editText; //结果显示集 TextView text_show; //显示计算器文本控件 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_calculator); //数字0——9实例化 number_0=findViewById(R.id.zero); number_1=findViewById(R.id.one); number_2=findViewById(R.id.two); number_3=findViewById(R.id.three); number_4=findViewById(R.id.four); number_5=findViewById(R.id.five); number_6=findViewById(R.id.six); number_7=findViewById(R.id.seven); number_8=findViewById(R.id.eight); number_9=findViewById(R.id.nine); //运算符实例化 add=findViewById(R.id.add); //加 minus=findViewById(R.id.minus); //减 mul=findViewById(R.id.multiply); //乘 divide=findViewById(R.id.divider); //除 equal=findViewById(R.id.equal); //等 point=findViewById(R.id.point); //小数点 det=findViewById(R.id.button8); //清除 //结果显示集 text_show = findViewById(R.id.text_show); editText=findViewById(R.id.ediText); //添加事件点击事件 // 数字点击事件 number_0.setOnClickListener( this); number_1.setOnClickListener(this); number_2.setOnClickListener( this); number_3.setOnClickListener( this); number_4.setOnClickListener(this); number_5.setOnClickListener( this); number_6.setOnClickListener( this); number_7.setOnClickListener(this); number_8.setOnClickListener( this); number_9.setOnClickListener( this); // 符号点击事件 add.setOnClickListener( this); minus.setOnClickListener( this); mul.setOnClickListener( this); divide.setOnClickListener( this); point.setOnClickListener( this); equal.setOnClickListener( this); det.setOnClickListener( this); } //读取每个按钮内容 public void onClick(View view){ //获取文本内容 String input=editText.getText().toString(); switch (view.getId()){ case R.id.zero: // 0 case R.id.one: // 1 case R.id.two: // 2 case R.id.three: // 3 case R.id.four: // 4 case R.id.five: // 5 case R.id.six: // 6 case R.id.seven: // 7 case R.id.eight: // 8 case R.id.nine: // 9 case R.id.point: //小数点 if(clean){ clean=false; editText.setText(""); //赋值为空 } editText.setText(input+((Button)view).getText()+""); //结果集就是本身 break; case R.id.add: case R.id.minus: // 减 case R.id.multiply: // 乘 case R.id.divider: // 除 if(clean){ clean=false; input=""; editText.setText(""); } editText.setText(input+" "+((Button)view).getText()+" "); break; case R.id.button8: //清除 if(clean){ clean=false; input=""; editText.setText(""); }else if(input!=null || !input.equals("")){ //如果获取内容为空 editText.setText(input.substring(0,input.length() - 1 ));//结果集为空 break; } break; case R.id.equal: //运算结果= getResult(); //调用处理结果方法 break; } } //运算结果方法 private void getResult(){ String exp=editText.getText().toString(); //获取文本框内容 if(exp==null||exp.equals("")){ return; } if(!exp.contains("")){ return; } if(clean){ clean=false; return; } clean=true; double result=0; //进行截取 // 运算符前的数字 String s1=exp.substring(0,exp.indexOf(" ")); //运算符 String op=exp.substring(exp.indexOf(" ")+1,exp.indexOf(" ")+2); //运算符后的数字 String s2=exp.substring(exp.indexOf(" ")+3); if(!s1.equals("")&&!s2.equals("")){ //如果包含小数点的运算 double d1=Double.parseDouble(s1);//则数字都是double类型 double d2=Double.parseDouble(s2); if(op.equals("+")){ // 如果是+ result=d1+d2; text_show.setText(d1+ "+" +d2+"="); }else if(op.equals("-")){ //如果是- result=d1-d2; text_show.setText(d1+ "-" +d2+"="); }else if(op.equals("*")){ //如果是* result=d1*d2; text_show.setText(d1+ "*" +d2+"="); }else if(op.equals("/")){ if(d2==0){ //如果被除数是0 result=0;//则结果为0 } else { //否则执行正常运算 result=d1/d2; text_show.setText(d1+ "/" +d2+"="); } } if(!s1.contains(".") &&!s2.contains(".")&&!op.equals("/")){ //如果是整数类型 int r=(int)result;//都是整形 editText.setText(r+""); }else { editText.setText(result+""); } }else if(!s1.equals("")&& s2.equals("")){ //如果只输入运算符前的数字 editText.setText(exp);//直接返回当前输入内容 }else if (s1.equals("")&& !s2.equals("")){ //如果是只输入运算符后面的数 double d2 =Double.parseDouble(s2); //运算符当前没有输入数字 if(op.equals("+")){ result= 0 + d2; text_show.setText(d2+"="); }else if(op.equals("-")){ result= 0 - d2; text_show.setText(d2+"="); }else if (op.equals("*")){ result= 0; }else if(op.equals("/")){ result= 0; } if(!s1.contains(".")&&!s2.contains(".")){ int r=(int) result; editText.setText(r+""); }else { editText.setText(result+""); } }else { editText.setText(""); } } }