Android studio开发实现计算器功能

Phylicia ·
更新时间:2024-09-20
· 344 次阅读

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("");         }     } }



studio Android

需要 登录 后方可回复, 如果你还没有账号请 注册新账号