Android——计算器(Calculator)

article/2025/11/2 9:33:00

Android——计算器(Calculator)

  • 简述
    • 效果图
    • 布局代码
    • 功能代码
    • 测例效果

简述

步骤:
1:输入一个数储存在变量num1中
2:选择 + - * /任意一个运算符
3:输入另一个数储存在变量num2中
4:并把运算结果保存到变量result中并显示
//如果被除数为0则结果默认显示为0
//在把String类型转化成double时有可能出现NumberFormatException异常,tyr,catch一下就可以了

效果图

activity_main.xml

布局代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:orientation="vertical"><TextViewandroid:id="@+id/Show"android:layout_width="match_parent"android:layout_height="100dp"android:textSize="50sp"android:hint="0"/><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><Buttonandroid:id="@+id/Clear"android:layout_width="match_parent"android:layout_height="70dp"android:text="Reset"android:textAllCaps="false"android:textSize="20sp"/><Buttonandroid:id="@+id/Number7"android:layout_width="100dp"android:layout_height="70dp"android:text="7"android:textAllCaps="false"android:textSize="20sp"android:layout_below="@+id/Clear"/><Buttonandroid:id="@+id/Number8"android:layout_width="100dp"android:layout_height="70dp"android:text="8"android:textAllCaps="false"android:textSize="20sp"android:layout_below="@+id/Clear"android:layout_marginLeft="100dp"/><Buttonandroid:id="@+id/Number9"android:layout_width="100dp"android:layout_height="70dp"android:text="9"android:textAllCaps="false"android:textSize="20sp"android:layout_below="@+id/Clear"android:layout_marginLeft="200dp"/><Buttonandroid:id="@+id/Add"android:layout_width="100dp"android:layout_height="70dp"android:text="+"android:textAllCaps="false"android:textSize="20sp"android:layout_below="@+id/Clear"android:layout_marginLeft="300dp"/><Buttonandroid:id="@+id/Number4"android:layout_width="100dp"android:layout_height="70dp"android:text="4"android:textAllCaps="false"android:textSize="20sp"android:layout_below="@+id/Number7"/><Buttonandroid:id="@+id/Number5"android:layout_width="100dp"android:layout_height="70dp"android:text="5"android:textAllCaps="false"android:textSize="20sp"android:layout_below="@+id/Number8"android:layout_marginLeft="100dp"/><Buttonandroid:id="@+id/Number6"android:layout_width="100dp"android:layout_height="70dp"android:text="6"android:textAllCaps="false"android:textSize="20sp"android:layout_below="@+id/Number9"android:layout_marginLeft="200dp"/><Buttonandroid:id="@+id/Subtract"android:layout_width="100dp"android:layout_height="70dp"android:text="-"android:textAllCaps="false"android:textSize="20sp"android:layout_below="@+id/Add"android:layout_marginLeft="300dp"/><Buttonandroid:id="@+id/Number1"android:layout_width="100dp"android:layout_height="70dp"android:text="1"android:textAllCaps="false"android:textSize="20sp"android:layout_below="@+id/Number5"/><Buttonandroid:id="@+id/Number2"android:layout_width="100dp"android:layout_height="70dp"android:text="2"android:textAllCaps="false"android:textSize="20sp"android:layout_below="@+id/Number6"android:layout_marginLeft="100dp"/><Buttonandroid:id="@+id/Number3"android:layout_width="100dp"android:layout_height="70dp"android:text="3"android:textAllCaps="false"android:textSize="20sp"android:layout_below="@+id/Number6"android:layout_marginLeft="200dp"/><Buttonandroid:id="@+id/Multiply"android:layout_width="100dp"android:layout_height="70dp"android:text="*"android:textAllCaps="false"android:textSize="20sp"android:layout_below="@+id/Subtract"android:layout_marginLeft="300dp"/><Buttonandroid:id="@+id/Point"android:layout_width="100dp"android:layout_height="70dp"android:text="."android:textAllCaps="false"android:textSize="30sp"android:layout_below="@+id/Number1"/><Buttonandroid:id="@+id/Number0"android:layout_width="100dp"android:layout_height="70dp"android:text="0"android:textAllCaps="false"android:textSize="20sp"android:layout_below="@+id/Number2"android:layout_marginLeft="100dp"/><Buttonandroid:id="@+id/Equal"android:layout_width="100dp"android:layout_height="70dp"android:text="="android:textAllCaps="false"android:textSize="20sp"android:layout_below="@+id/Number3"android:layout_marginLeft="200dp"/><Buttonandroid:id="@+id/Divide"android:layout_width="100dp"android:layout_height="70dp"android:text="/"android:textAllCaps="false"android:textSize="20sp"android:layout_below="@+id/Multiply"android:layout_marginLeft="300dp"/></RelativeLayout></LinearLayout>

功能代码

public class MainActivity extends AppCompatActivity {private TextView DisplayBox;private Button Number0, Number1,Number2,Number3,Number4,Number5,Number6,Number7,Number8,Number9;private Button Add,Subtract,Multiply,Divide,Equal;// + - * / =private Button Reset ,Point;double num1 = 0,num2 = 0;//第一次输入的数和第二次输入的数double result = 0;//存放运算结果int Operator;//用于判断是那个运算符//private String str1,str2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);DisplayBox = (TextView) findViewById(R.id.Show);Number0 = (Button) findViewById(R.id.Number0);Number1 = (Button) findViewById(R.id.Number1);Number2 = (Button) findViewById(R.id.Number2);Number3 = (Button) findViewById(R.id.Number3);Number4 = (Button) findViewById(R.id.Number4);Number5 = (Button) findViewById(R.id.Number5);Number6 = (Button) findViewById(R.id.Number6);Number7 = (Button) findViewById(R.id.Number7);Number8 = (Button) findViewById(R.id.Number8);Number9 = (Button) findViewById(R.id.Number9);Add = (Button) findViewById(R.id.Add);Subtract = (Button) findViewById(R.id.Subtract);Multiply = (Button) findViewById(R.id.Multiply);Divide = (Button) findViewById(R.id.Divide);Equal = (Button) findViewById(R.id.Equal);Reset = (Button) findViewById(R.id.Clear);Point = (Button) findViewById(R.id.Point);SetListen();}public void SetListen(){OnClick onClick = new OnClick();Number0.setOnClickListener(onClick);Number1.setOnClickListener(onClick);Number2.setOnClickListener(onClick);Number3.setOnClickListener(onClick);Number4.setOnClickListener(onClick);Number5.setOnClickListener(onClick);Number6.setOnClickListener(onClick);Number7.setOnClickListener(onClick);Number8.setOnClickListener(onClick);Number9.setOnClickListener(onClick);Point.setOnClickListener(onClick);Add.setOnClickListener(onClick);Subtract.setOnClickListener(onClick);Multiply.setOnClickListener(onClick);Divide.setOnClickListener(onClick);Equal.setOnClickListener(onClick);Reset.setOnClickListener(onClick);}class OnClick implements View.OnClickListener{@Overridepublic void onClick(View v) {switch (v.getId()){case R.id.Clear:DisplayBox.setText(null);break;case R.id.Number0:String str0 = DisplayBox.getText().toString().trim();str0 += "0";DisplayBox.setText(str0);break;case R.id.Number1:String str1 = DisplayBox.getText().toString().trim();str1 += "1";DisplayBox.setText(str1);break;case R.id.Number2:String str2 = DisplayBox.getText().toString().trim();str2 += "2";DisplayBox.setText(str2);break;case R.id.Number3:String str3 = DisplayBox.getText().toString().trim();str3 += "3";DisplayBox.setText(str3);break;case R.id.Number4:String str4 = DisplayBox.getText().toString().trim();str4 += "4";DisplayBox.setText(str4);break;case R.id.Number5:String str5 = DisplayBox.getText().toString().trim();str5 += "5";DisplayBox.setText(str5);break;case R.id.Number6:String str6 = DisplayBox.getText().toString().trim();str6 += "6";DisplayBox.setText(str6);break;case R.id.Number7:String str7 = DisplayBox.getText().toString().trim();str7 += "7";DisplayBox.setText(str7);break;case R.id.Number8:String str8 = DisplayBox.getText().toString().trim();str8 += "8";DisplayBox.setText(str8);break;case R.id.Number9:String str9 = DisplayBox.getText().toString().trim();str9 += "9";DisplayBox.setText(str9);break;case R.id.Point:String point = DisplayBox.getText().toString().trim();point += ".";DisplayBox.setText(point);break;case R.id.Add:String add = DisplayBox.getText().toString().trim();if (add.equals(null)){return;}try {num1 = Double.valueOf(add);}catch (NumberFormatException e){e.printStackTrace();}add += "+";DisplayBox.setText(null);Operator = 1;break;case R.id.Subtract:String subtract = DisplayBox.getText().toString().trim();if (subtract.equals(null)){return;}try {num1 = Double.valueOf(subtract);}catch (NumberFormatException e){e.printStackTrace();}subtract += "-";DisplayBox.setText(null);Operator = 2;break;case R.id.Multiply:String multiply = DisplayBox.getText().toString().trim();if (multiply.equals(null)){return;}try {num1 = Double.valueOf(multiply);}catch (NumberFormatException e){e.printStackTrace();}multiply += "*";DisplayBox.setText(null);Operator = 3;break;case R.id.Divide:String divide = DisplayBox.getText().toString().trim();if (divide.equals(null)){return;}try {num1 = Double.valueOf(divide);}catch (NumberFormatException e){e.printStackTrace();}divide += "/";DisplayBox.setText(null);Operator = 4;break;case R.id.Equal:String equal = DisplayBox.getText().toString().trim();try {num2 = Double.valueOf(equal);}catch (NumberFormatException e){e.printStackTrace();}DisplayBox.setText(equal);switch (Operator){case 1:result = num1 + num2;DisplayBox.setText(num1 + "+" + num2 + "=" +result);break;case 2:result = num1 - num2;DisplayBox.setText(num1 + "-" + num2 + "=" +result);break;case 3:result = num1 * num2;DisplayBox.setText(num1 + "*" + num2 + "=" +result);break;case 4:if (num2 == 0){DisplayBox.setText("0");}else {result = num1 / num2;DisplayBox.setText(num1 + "/" + num2 + "=" + result);}break;}break;default:result = 0;break;}}}

测例效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


http://chatgpt.dhexx.cn/article/mGWOrjoj.shtml

相关文章

Android:简易计算器

Android 计算器的简易实现 Github 私以为这个小项目中最难的是逻辑部分 目前资瓷加、减、乘、除、乘方&#xff0c;括号这些操作符 其中减号可以当做负号使用 AC长按清屏 特色&#xff1a;实时结果 数字分隔&#xff08;100,000&#xff09; 支持hentai算式 如3-(-(-65)…

Android——一个神奇的计算器APP

一个神奇的计算器APP 中缀运算效果视频自定义圆形TextView效果图建立attr文件绘制圆形 字符拼接清空栈内元素 运算执行手势监听入栈&&出栈运算结果小数位判断运算代码 任意进制转换效果视频进制转换结果逆置结果返回 中缀运算 中缀运算定义了两个栈&#xff0c;数字栈和…

【Android】简易计算器

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 Android简易计算器 前言一、Kotlin版本1. activity_main.xml2. MainActivity.kt 二、Java版本1. activity_main.xml2. MainActivity.java 总结 前言 提示&#xff1a;Kotlin…

Android 计算器

Android 计算器 开发环境&#xff1a;android stdio 3.6.1 最终效果&#xff1a; 竖屏&#xff1a; 横屏&#xff1a; 完整项目&#xff1a;百度网盘链接 密码 v89n 主要代码&#xff1a; MainActivity.java: package com.example.experience_two;import androidx.appc…

android计算器

1、效果预览 2、项目布局 3、main.xml文件内容 <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"android:layout_width"fill_parent"android:layout_height"fi…

Android计算器简单实现及代码分析

一、UI布局及代码 页面效果 布局代码 <?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"…

Android计算器——入门

Android计算器—入门 作者&#xff1a;黑衣侠客 一.前言 这是我写的第一个App&#xff0c;利用的是《安卓第一行代码》第三章&#xff0c;UI控件的一些知识&#xff0c;然后整体结构综合了一些CSDN博客和简书上的一些著作&#xff0c;同样&#xff0c;在写Android计算器&…

基础复习——项目练习——计算器

布局&#xff1a; <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:background"#eeeeee"android:orientation"vert…

安卓-AndroidStudio-计算器

安卓--Android Studio--简易计算器 结果截图关键代码讲解完整代码 本人是一名在校学生&#xff0c;由于上个学期的课程内容包括移动开发&#xff0c;其中的实验也算是大部分是自己完成的&#xff0c;所以算是写博客记录一下吧。 第一次写&#xff0c;有啥问题及时交流哈&#x…

Django数据库操作

目录 一、Django/ORM框架介绍及配置 1.1、ORM框架介绍 1.2、Django数据库配置 二、定义模型类数 2.1、定义模型类 2.2、迁移 2.3、插入数据 三、单表据库操作(增、删、改、查) 3.1、增 3.2、删 3.3、改 3.4查&#xff08;重点&#xff09; 四、两表联查 4.1、一对…

Qt入门------数据库操作

文章目录 一、数据库1.数据库驱动2.查询驱动3.连接数据库4.执行sql语句5.插入数据6.事务 二 &#xff0c;sql模型类1.QSqlQueryModel模型2.QSqlTableModel模型3.QSqlRelationalTableModel模型 一、数据库 Qt中的Qt SQL模块提供了对数据库的支持&#xff0c;模块中类可分为三层…

Java的数据库操作

Java的数据库操作&#xff0c;上学期末的课设是用到的&#xff0c;然而老师把JDBC连接mysql数据库的代码和配置文件已经给好了&#xff0c;那时对它可以说是只有一点点印象。 今天跟着书走一边敲一边&#xff0c;总算是有所进步。 数据库表的创建和初始数据的操作&#xff0c…

一文详解python中的数据库操作

python中的数据库操作 一、数据库编程接口1. 连接对象 二、使用内置的SQLite1.创建数据库文件2.操作SQLite 三、MySql数据库的使用3.1 安装MySql3.2 设置环境变量3.3 启动MySql3.4 使用navicat for mysql 管理软件3.5 安装PyMysql模块3.6 连接数据库 四、创建数据表4.1 创建boo…

数据库操作练习题

如何查看员工表中的所有字段&#xff1f; 如何查看员工表中的姓名和性别&#xff1f; 如何知道每个员工一年的总收入&#xff1f; 怎么查看女员工的信息&#xff1f; 如何查看月薪范围位于 8000 到 12000 之间的员工&#xff1f; 查询员工中叫做“张三”、“李四” 或“张飞”的…

MySQL(一)数据库操作

1.关系型数据库与非关系型数据库区别与联系 1.关系型数据库 ( SQL ) MySQL , Oracle , SQL Server , SQLite , DB2 , … 关系型数据库通过外键关联来建立表与表之间的关系 2.非关系型数据库 ( NOSQL ) Redis , MongoDB , … 非关系型数据库通常指数据以对象的形式存储在数据…

使用ORACLE 进行数据库操作

上一期讲了 如何创建表&#xff0c;例如我们创建了一个 名为 t_customer 的表&#xff0c;格式为下&#xff1a; create table t_customer(cust_id int primary key,cust_name varchar(20),cust_gender char(3),cust_age int,cust_birthday date,cust_height number(3,2),cust…

C#数据库操作

功能需求 1&#xff0c;利用随机数模拟产生每次考试成绩 2&#xff0c;将每次考试成绩存入到数据库 3&#xff0c;将每次考试成绩划分优、良、中、差、不及格五类&#xff0c;并作为查询条件&#xff0c;查询符合每种水平的成绩 技术知识点 1.random类的使用 2.数据库的链…

云数据库操作

1 云数据库创建 每一个list就相当于一个表&#xff0c;每个记录就是一条内容 云数据库存储形式是JSON2 读取云数据库值 数据库初始化 const db wx.cloud.database() 连接数据库 db.collection(需要连接的数据列表名)可以通过.doc(‘具体id号’)获取具体的信息内容获取年、月…

Android数据库操作

Android内置了一个名为SQLite的关系型数据库&#xff0c;这是一款轻量型的数据库&#xff0c;操作十分简便。SQLite与别的数据库不同的是&#xff0c;它没有数据类型。可以保存任何类型的数据到你所想要保存的任何表的任何列中。但它又支持常见的类型比如: NULL, VARCHAR, TEXT…

数据库基本操作

一、数据库基本操作 1.数据库的基本操作 -- 1.数据库的基本操作 使用test数据库 USE test; -- 查看当前test数据库中所有表 MySQL命令 SHOW TABLES; -- 查表的基本信息 SHOW CREATE TABLE student; -- -- 查看表的字段信息 desc student; 2.数据表的基本操作 -- 2.数据表的…