Android studio开发实现计算器功能
作者:HYJones
这篇文章主要为大家详细介绍了Android studio开发实现计算器功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
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("");
}
}
}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
