Android studio实现简易计算器App功能
作者:AKA机器人spider 发布时间:2023-03-07 07:57:57
标签:Android,studio,App,计算器
在Android studio实现简易计算器App并实现加减乘除功能,供大家参考,具体内容如下
结果
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="10dp">
<EditText
android:id="@+id/et_result"
android:hint="请输入数字"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_gravity="left"
android:gravity="right"
android:textSize="50sp" />
<GridLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/sz"
android:layout_gravity="center"
android:orientation="horizontal"
android:columnCount="4"
android:rowCount="5">
<Button
android:id="@+id/btn_clear"
android:layout_columnSpan="3"
android:layout_gravity="fill_horizontal"
android:text="C DEL"
android:layout_rowWeight="1"
android:textSize="26sp" />
<Button
android:id="@+id/btn_div"
android:text="÷"
android:layout_rowWeight="1"
android:textSize="26sp" />
<Button
android:id="@+id/btn_1"
android:text="1"
android:layout_rowWeight="1"
android:textSize="26sp"/>
<Button
android:id="@+id/btn_2"
android:text="2"
android:layout_rowWeight="1"
android:textSize="26sp" />
<Button
android:id="@+id/btn_3"
android:text="3"
android:layout_rowWeight="1"
android:textSize="26sp" />
<Button
android:id="@+id/btn_add"
android:text="+"
android:layout_rowWeight="1"
android:textSize="26sp" />
<Button
android:id="@+id/btn_4"
android:text="4"
android:layout_rowWeight="1"
android:textSize="26sp" />
<Button
android:id="@+id/btn_5"
android:text="5"
android:layout_rowWeight="1"
android:textSize="26sp" />
<Button
android:id="@+id/btn_6"
android:text="6"
android:layout_rowWeight="1"
android:textSize="26sp" />
<Button
android:id="@+id/btn_sub"
android:text="-"
android:layout_rowWeight="1"
android:textSize="26sp" />
<Button
android:id="@+id/btn_7"
android:text="7"
android:layout_rowWeight="1"
android:textSize="26sp" />
<Button
android:id="@+id/btn_8"
android:text="8"
android:layout_rowWeight="1"
android:textSize="26sp" />
<Button
android:id="@+id/btn_9"
android:text="9"
android:layout_rowWeight="1"
android:textSize="26sp" />
<Button
android:id="@+id/btn_mul"
android:text="×"
android:layout_rowWeight="1"
android:textSize="26sp" />
<Button
android:id="@+id/btn_0"
android:text="0"
android:layout_rowWeight="1"
android:textSize="26sp" />
<Button
android:id="@+id/btn_dot"
android:text="."
android:layout_rowWeight="1"
android:textSize="26sp" />
<Button
android:id="@+id/btn_equ"
android:text="="
android:layout_rowWeight="1"
android:layout_columnSpan="2"
android:layout_gravity="fill_horizontal"
android:textSize="26sp" />
</GridLayout>
</LinearLayout>
MainActivity.java
package com.example.a86189.szcounter;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
Button btn1; // 数字1
Button btn2; // 数字2
Button btn3; // 数字3
Button btn4; // 数字4
Button btn5; // 数字5
Button btn6; // 数字6
Button btn7; // 数字7
Button btn8; // 数字8
Button btn9; // 数字9
Button btn0; // 数字0
Button add; // +号
Button sub; // -号
Button mul; // *号
Button div; // 除号
Button dot; // 小数点
Button equ; // =号
Button clear; //清除
EditText result; // 显示文本
double num1 = 0, num2 = 0; //计算的数字
double Result = 0;//计算结果
int op = 0;//判断操作符
String opd = " ";//显示操作符
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取页面上的控件
btn1 = (Button) findViewById(R.id.btn_1);
btn2 = (Button)findViewById(R.id.btn_2);
btn3 = (Button)findViewById(R.id.btn_3);
btn4 = (Button)findViewById(R.id.btn_4);
btn5 = (Button)findViewById(R.id.btn_5);
btn6 = (Button)findViewById(R.id.btn_6);
btn7 = (Button)findViewById(R.id.btn_7);
btn8 = (Button)findViewById(R.id.btn_8);
btn9 = (Button)findViewById(R.id.btn_9);
btn0 = (Button)findViewById(R.id.btn_0);
add = (Button)findViewById(R.id.btn_add);
sub = (Button)findViewById(R.id.btn_sub);
mul = (Button)findViewById(R.id.btn_mul);
div = (Button)findViewById(R.id.btn_div);
equ = (Button)findViewById(R.id.btn_equ);
dot = (Button)findViewById(R.id.btn_dot);
clear =(Button) findViewById(R.id.btn_clear);
result =(EditText) findViewById(R.id.et_result);
// 按钮的单击事件
btn1.setOnClickListener(new Click());
btn2.setOnClickListener(new Click());
btn3.setOnClickListener(new Click());
btn4.setOnClickListener(new Click());
btn5.setOnClickListener(new Click());
btn6.setOnClickListener(new Click());
btn7.setOnClickListener(new Click());
btn8.setOnClickListener(new Click());
btn9.setOnClickListener(new Click());
btn0.setOnClickListener(new Click());
add.setOnClickListener(new Click());
sub.setOnClickListener(new Click());
mul.setOnClickListener(new Click());
div.setOnClickListener(new Click());
equ.setOnClickListener(new Click());
dot.setOnClickListener(new Click());
clear.setOnClickListener(new Click());
result.setOnClickListener(new Click());
}
// 设置按钮点击后的监听
class Click implements View.OnClickListener {
public void onClick(View v) {
switch (v.getId()) { //switch循环获取点击按钮后的值
case R.id.btn_0: //获取,0-9、小数点,并在编辑框显示
String myString = result.getText().toString();
myString += "0";
result.setText(myString);
break;
case R.id.btn_1:
String myString1 = result.getText().toString();
myString1 += "1";
result.setText(myString1);
break;
case R.id.btn_2:
String myString2 = result.getText().toString();
myString2 += "2";
result.setText(myString2);
break;
case R.id.btn_3:
String myString3 = result.getText().toString();
myString3 += "3";
result.setText(myString3);
break;
case R.id.btn_4:
String myString4 = result.getText().toString();
myString4 += "4";
result.setText(myString4);
break;
case R.id.btn_5:
String myString5 = result.getText().toString();
myString5 += "5";
result.setText(myString5);
break;
case R.id.btn_6:
String myString6 = result.getText().toString();
myString6 += "6";
result.setText(myString6);
break;
case R.id.btn_7:
String myString7 = result.getText().toString();
myString7 += "7";
result.setText(myString7);
break;
case R.id.btn_8:
String myString8 = result.getText().toString();
myString8 += "8";
result.setText(myString8);
break;
case R.id.btn_9:
String myString9 = result.getText().toString();
myString9 += "9";
result.setText(myString9);
break;
case R.id.btn_dot:
String myStringDot = result.getText().toString();
myStringDot += ".";
result.setText(myStringDot);
break;
case R.id.btn_add: //判断,使用加减乘除的操作符
String myStringAdd = result.getText().toString();
if (myStringAdd.equals(null)) {
return;
}
num1 = Double.valueOf(myStringAdd);
result.setText(null);
op = 1;
opd = "+";
break;
case R.id.btn_sub:
String myStringSub = result.getText().toString();
if (myStringSub.equals(null)) {
return;
}
num1 = Double.valueOf(myStringSub);
result.setText(null);
op = 2;
opd = "-";
break;
case R.id.btn_mul:
String myStringMul = result.getText().toString();
if (myStringMul.equals(null)) {
return;
}
num1 = Double.valueOf(myStringMul);
result.setText(null);
op = 3;
opd = "×";
break;
case R.id.btn_div:
String myStringDiv = result.getText().toString();
if (myStringDiv.equals(null)) {
return;
}
num1 = Double.valueOf(myStringDiv);
result.setText(null);
op = 4;
opd = "÷";
break;
case R.id.btn_clear: //清除,将编辑框文本显示为空
result.setText(null);
break;
case R.id.btn_equ: //计算,以操作符为判断,选择所需的运算,并将结果输出
String myStringEqu = result.getText().toString();
if (myStringEqu.equals(null)) {
return;
}
num2 = Double.valueOf(myStringEqu);
result.setText(null);
switch (op) {
case 0:
Result = num2;
break;
case 1:
Result = num1 + num2;
break;
case 2:
Result = num1 - num2;
break;
case 3:
Result = num1 * num2;
break;
case 4:
if (num2 == 0) //除法中分子与分母之分
Result = 0;
else
Result = num1 / num2;
break;
default:
Result = 0;
break;
}
result.setText(Double.toString(num1) + opd + Double.toString(num2) + "=" + Double.toString(Result)); //将结果完整输出
break;
default:
break;
}
}
}
}
来源:https://blog.csdn.net/Hdhdi/article/details/121071508


猜你喜欢
- 1、同步消息即时性较强,重要的消息,且必须有回执的消息,例如短信,通知(转账成功)生产者:public class Producer { &
- 本文实例分析了Android编程中activity的完整生命周期。分享给大家供大家参考,具体如下:android中 activity有自己的
- kk-anti-reptile 是适用于基于 spring-boot 开发的分布式系统的反爬虫组件。系统要求基于 spring-boot 开
- 整理文档,搜刮出一个C# 通过 oledb 操作Excel实例代码,稍微整理精简一下做下分享。public string GetConnec
- 本文需求实现了java通过方向键控制小球移动的具体过程,供大家参考,具体内容如下需求分析:第一 要画出一个小球第二 要能通过控制方向键控制它
- spring boot实现自动输出word文档功能本文用到Apache POI组件组件依赖在pom.xml文件中添加<dependen
- 引言C#5.0中async和await两个关键字,这两个关键字简化了异步编程,之所以简化了,还是因为编译器给我们做了更多的工作,下面就具体看
- 谷歌正式在I/O大会现场详细介绍了有关Android 7.0的大量信息。目前,我们已经知道,新一代Android操作系统将支持无缝升级,能够
- 概述:开发过程中,看到有些界面用到一道光线在屏幕中掠过的效果,觉得挺炫的。所以查找相关资料自己实现了一遍。先上个预览图:实现思路:简单来说就
- 这篇文章主要介绍了Mybatis一对多关联关系映射实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- 传值就是将实参的值传到所调用的函数里面,实参的值并没有发生变化,默认传值的有int型,浮点型,bo
- 引言什么?兔了个兔?吐了还要吐?首先今天,我们自己用android程序实现一个兔年的新年贺卡。下面就是见证美好的时刻,上效果。好,我们来使用
- 参考文章图解Java中插入排序算法的原理与实现实现效果示例代码import java.awt.*;public class AlgoVisu
- JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现。获取文件MD5值主要分为
- JWT本文代码截取自实际项目。jwt(Json Web Token),一个token,令牌。简单流程:用户登录成功后,后端返回一个token
- 什么是WebSocket WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket使得客户端和服务器之间
- java 引用类型的数据传递的是内存地址java中引用类型的数据,传递的是内存地址,像类,数组,接口,String等等都是引用类型!看下面的
- 引言偶然在Youtube上看到一名国外安卓开发者分享了一个提升应用性能的视频,其中使用到了macro benchmark来进行性能测量,包括
- 本文实例为大家分享了java实现图片反色处理的具体代码,供大家参考,具体内容如下效果对比原图反色处理原图反色处理核心代码实现import j
- 通过java代码规范来优化程序,优化内存使用情况,防止内存泄露可供程序利用的资源(内存、CPU时间、网络带宽等)是有限的,优化的目的就是让程