用android如何实现计算机计算功能

一.新建一个项目

步骤:

1.新建项目

2.选择 

 

二.用户界面构建 

找到项目的res的下面layout里面的activity.xml文件进行约束布局界面构建。

activity.xml代码如下:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"tools:context=".MainActivity"><GridLayoutandroid:id="@+id/gridLayout"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"tools:ignore="MissingConstraints"><EditTextandroid:id="@+id/ed_input"android:layout_width="match_parent"android:layout_height="100dp"android:hint="输入框" /><EditTextandroid:id="@+id/ed_output"android:layout_width="match_parent"android:layout_height="100dp"android:hint="输出口" /></GridLayout><GridLayoutandroid:layout_width="424dp"android:layout_height="329dp"android:columnCount="4"android:rowCount="4"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintTop_toBottomOf="@+id/gridLayout"tools:ignore="MissingConstraints"><Buttonandroid:id="@+id/buttonc"android:layout_width="180dp"android:layout_height="60dp"android:layout_columnSpan="2"android:backgroundTint="#a6a6a6"android:text="c" /><Buttonandroid:id="@+id/buttondel"android:layout_width="90dp"android:layout_height="60dp"android:layout_columnSpan="1"android:backgroundTint="#a6a6a6"android:text="DEL" /><Buttonandroid:id="@+id/buttonchu"android:layout_width="90dp"android:layout_height="60dp"android:backgroundTint="#ff9500"android:text="/" /><Buttonandroid:id="@+id/button7"android:layout_width="90dp"android:layout_height="60dp"android:backgroundTint="#333333"android:text="7" /><Buttonandroid:id="@+id/button8"android:layout_width="90dp"android:layout_height="60dp"android:backgroundTint="#333333"android:text="8" /><Buttonandroid:id="@+id/button9"android:layout_width="90dp"android:layout_height="60dp"android:backgroundTint="#333333"android:text="9" /><Buttonandroid:id="@+id/buttoncheng"android:layout_width="90dp"android:layout_height="60dp"android:backgroundTint="#ff9500"android:text="*" /><Buttonandroid:id="@+id/button4"android:layout_width="90dp"android:layout_height="60dp"android:backgroundTint="#333333"android:text="4" /><Buttonandroid:id="@+id/button5"android:layout_width="90dp"android:layout_height="60dp"android:backgroundTint="#333333"android:text="5" /><Buttonandroid:id="@+id/button6"android:layout_width="90dp"android:layout_height="60dp"android:backgroundTint="#333333"android:text="6" /><Buttonandroid:id="@+id/buttonjian"android:layout_width="90dp"android:layout_height="60dp"android:backgroundTint="#ff9500"android:text="-" /><Buttonandroid:id="@+id/button1"android:layout_width="90dp"android:layout_height="60dp"android:backgroundTint="#333333"android:text="1" /><Buttonandroid:id="@+id/button2"android:layout_width="90dp"android:layout_height="60dp"android:backgroundTint="#333333"android:text="2" /><Buttonandroid:id="@+id/button3"android:layout_width="90dp"android:layout_height="60dp"android:backgroundTint="#333333"android:text="3" /><Buttonandroid:id="@+id/buttonjia"android:layout_width="90dp"android:layout_height="60dp"android:backgroundTint="#ff9500"android:text="+" /><Buttonandroid:id="@+id/buttonyuliu"android:layout_width="90dp"android:layout_height="60dp"android:backgroundTint="#333333"android:text="预留" /><Buttonandroid:id="@+id/button0"android:layout_width="90dp"android:layout_height="60dp"android:backgroundTint="#333333"android:text="0" /><Buttonandroid:id="@+id/buttondian"android:layout_width="90dp"android:layout_height="60dp"android:backgroundTint="#333333"android:text="." /><Buttonandroid:id="@+id/buttondeng"android:layout_width="90dp"android:layout_height="60dp"android:backgroundTint="#ff9500"android:text="=" /></GridLayout></androidx.constraintlayout.widget.ConstraintLayout>

三.设置实现计算功能的关键 

找到Java里面的MainActiviy.java写入实现代码。

MainActiviy.java代码如下:

package com.example.myapplication2;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;public class MainActivity extends AppCompatActivity implements View.OnClickListener{private Button mbutton1,mbutton2,mbutton3,mbutton4,mbutton5,mbutton6,mbutton7,mbutton8,mbutton9,mbutton0,mbuttonc,mbuttondel,mbuttonyuliu,mbuttonjia,mbuttonjian,mbuttoncheng,mbuttonchu,mbuttondian,mbuttondeng;private EditText edinput,edoutput;private boolean deng_flag=false;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//数字0-9mbutton1=findViewById(R.id.button1);mbutton2=findViewById(R.id.button2);mbutton3=findViewById(R.id.button3);mbutton4=findViewById(R.id.button4);mbutton5=findViewById(R.id.button5);mbutton6=findViewById(R.id.button6);mbutton7=findViewById(R.id.button7);mbutton8=findViewById(R.id.button8);mbutton9=findViewById(R.id.button9);mbutton0=findViewById(R.id.button0);//c、del、预留mbuttonc=findViewById(R.id.buttonc);mbuttondel=findViewById(R.id.buttondel);mbuttonyuliu=findViewById(R.id.buttonyuliu);//加减乘除、点、等号mbuttonjia=findViewById(R.id.buttonjia);mbuttonjian=findViewById(R.id.buttonjian);mbuttoncheng=findViewById(R.id.buttoncheng);mbuttonchu=findViewById(R.id.buttonchu);mbuttondeng=findViewById(R.id.buttondeng);mbuttondian=findViewById(R.id.buttondian);//输入输出edinput=findViewById(R.id.ed_input);edoutput=findViewById(R.id.ed_output);//设置按钮监听//0-9mbutton0.setOnClickListener(this);mbutton1.setOnClickListener(this);mbutton2.setOnClickListener(this);mbutton3.setOnClickListener(this);mbutton4.setOnClickListener(this);mbutton5.setOnClickListener(this);mbutton6.setOnClickListener(this);mbutton7.setOnClickListener(this);mbutton8.setOnClickListener(this);mbutton9.setOnClickListener(this);//c、del、预留mbuttonc.setOnClickListener(this);mbuttondel.setOnClickListener(this);mbuttonyuliu.setOnClickListener(this);//加减乘除、点、等号mbuttonjia.setOnClickListener(this);mbuttonjian.setOnClickListener(this);mbuttoncheng.setOnClickListener(this);mbuttonchu.setOnClickListener(this);mbuttondeng.setOnClickListener(this);mbuttondian.setOnClickListener(this);}@Overridepublic void onClick(View view){String input = edinput.getText().toString();String output = edoutput.getText().toString();switch (view.getId()){//0-9case R.id.button0:case R.id.button1:case R.id.button2:case R.id.button3:case R.id.button4:case R.id.button5:case R.id.button6:case R.id.button7:case R.id.button8:case R.id.button9:case R.id.buttondian:if(deng_flag){deng_flag=false;edinput.setText(null);edinput.setText(((Button) view).getText());}else {edinput.setText(input+((Button) view).getText());}edinput.setText(input+((Button) view).getText());break;//ccase R.id.buttonc:edinput.setText(null);edoutput.setText(null);break;//delcase R.id.buttondel:if (deng_flag){deng_flag=false;edinput.setText("");}else if(input !=null&&!input.equals("")){edinput.setText(input.substring(0,input.length()-1));}break;//预留case R.id.buttonyuliu:break;//加减乘除case R.id.buttonjia:case R.id.buttonjian:case R.id.buttoncheng:case R.id.buttonchu:edinput.setText(input+" "+((Button) view).getText()+" ");break;//等号case R.id.buttondeng:
//                edinput.setText(input+((Button) view).getText());
//                break;getResult();}}private void getResult() {try{String input = edinput.getText().toString();int iResult=0;double dResult=0;String cw="错误";String s1,s2,op;//数字,数字,操作符 s1"4" op"*" s2"5"s1=input.substring(0,input.indexOf(" "));op=input.substring(input.indexOf(" ")+1,input.indexOf(" ")+2);s2=input.substring(input.indexOf(" ")+3);double d1,d2;d1=Double.parseDouble(s1);d2=Double.parseDouble(s2);if(op.equals("+")){//加dResult=d1+d2;
//                edoutput.setText(dResult+"");}else if(op.equals("-")){//减dResult=d1-d2;} else if (op.equals("*")){//乘dResult=d1*d2;} else if (op.equals("/")) {//除if(d2==0){edoutput.setText(cw+"");} else if (d1==0) {dResult=0;} else {dResult=d1/d2;}}if(!input.equals(".")&&!input.equals("/")){iResult=(int)dResult;edoutput.setText(iResult+"");}edoutput.setText(dResult+"");}catch (Exception e){System.out.println(e);}}
}

运行结果如下:

输入计算值,得出结果

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/27398.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电脑屏幕录制怎么录制?这7个录制屏幕的技巧值得一试!

电脑屏幕录制怎么录制&#xff1f;屏幕录制是什么? 简单地说&#xff0c;电脑屏幕录制就是在你的设备屏幕上录制视频。它可以捕捉屏幕上正在发生的事情&#xff0c;并让你与其他人分享。记录电脑、手机或笔记本电脑屏幕的原因有很多&#xff1a; 1. 一个简单的屏幕录制可以用…

STM32项目分享:智能大棚/智慧农业系统

目录 一、前言 二、项目简介 1.功能详解 2.主要器件 三、原理图设计 四、PCB硬件设计 1.PCB图 2.PCB板打样焊接图 五、程序设计 六、实验效果 七、资料内容 项目分享 一、前言 项目成品图片&#xff1a; 哔哩哔哩视频链接&#xff1a; https://www.bilibili.co…

超全Midjourney自学教程,怒码1万3千字!这是我见过最良心的教程啦!

前段时间&#xff0c;后台有网友私信我&#xff0c;说想跟我一起学AI~当时一边开心一边惶恐&#xff0c;满足于被人看到自己的努力、又担心自己是不是教不好别人&#xff0c;毕竟我自己也是业余时间边学边发的那种~ 不过&#xff0c;我还是会继续搬运或整理一些我认为值得记录…

Spark学习——不同模式下执行脚本

举个简单的例子&#xff1a;使用spark官方用例"取pi值" 一、local模式 进入spark目录执行后台命令&#xff1a; bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master local[*] \ ./examples/jars/spark-examples_2.12-3.2.1.jar \ 10运行结…

七、IP路由原理和路由引入

目录 一、IP路由原理 二、路由引入 2.1、双点双向路由引入 2.2、路由回灌 三、路由策略与路由控制 路由匹配工具&#xff08;规则&#xff09; ACL IP前缀列表 路由控制工具&#xff08;控制&#xff09; 策略工具1 策略工具2 搭配组合 组…

理解Es的DSL语法(二):聚合

前一篇已经系统介绍过查询语法&#xff0c;详细可直接看上一篇文章&#xff08;理解DSL语法&#xff08;一&#xff09;&#xff09;&#xff0c;本篇主要介绍DSL中的另一部分&#xff1a;聚合 理解Es中的聚合 虽然Elasticsearch 是一个基于 Lucene 的搜索引擎&#xff0c;但…

LaTeX 学习 第2节 数学结构

----用教授的方式学习 目录 2.1 上标与下标 2.2 上下画线与花括号 2.3 分式 2.4 根式 2.5 矩阵 ​​​​​​​LaTex安装包&#xff1a;https://download.csdn.net/download/weixin_38135241/89416392 LaTex- windows安装包&#xff1a;https://download.csdn.net/down…

SpringBoot3 整合 Mybatis 完整版

本文记录一下完整的 SpringBoot3 整合 Mybatis 的步骤。 只要按照本步骤来操作&#xff0c;整合完成后就可以正常使用。1. 添加数据库驱动依赖 以 MySQL 为例。 当不指定 依赖版本的时候&#xff0c;会 由 springboot 自动管理。 <dependency><groupId>com.mysql&l…

yolo案例项目学习记录

box-ocr: 监控摄像头视频流实时计数传送带的货物&#xff0c;并提取货物上面文字或二维码 1.本地环境&#xff1a; 1.1torch、torchvison、torchaudio版本对应关系 PyTorch中torch、torchvision、torchaudio、torchtext版本对应关系_torch2.0.1对应的torchvision-CSDN博客 1…

Python 全栈系列252 一些小计划

说明 最近整体进展还比较顺利&#xff0c;不过也因为这样&#xff0c;好几个线头怎么继续平衡和推进需要稍微捋一下。 内容 按重要|紧急方法来看&#xff0c;线头1是重要且紧急的&#xff0c;QTV200也算重要且紧急&#xff0c;其他都算是重要不紧急。 线头1: 数据清洗 虽然…

OpenGL3.3_C++_Windows(10)

最终演示 ​ demo演示 Assimp模型渲染 模型导入库Assimp&#xff1a;导入很多种不同的模型文件格式&#xff0c;加载至Assimp的通用数据结构&#xff08;树形&#xff09;中&#xff0c;不论导入的是什么种类的文件格式&#xff0c;用同一种方式访问我们需要的数据。 Assimp库…

【python-AI篇】人工智能技能树思维导图

大致总结一下得出如下思维导图&#xff0c;如不完善日后迭代更新 1. python基础三方库 1.1 科学计算库 ---- numpy库 1.2 科学计算库 ---- Scipy库 1.3 数据分析处理库 ---- pandas库 1.4 可视化库 ---- matplotlib库 1.5 可视化库 ---- seaborn库 1.6 机器学习和数据挖掘库 …

这世上又多了一只爬虫(spiderflow)

让我们一起默念&#xff1a; 爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫 接着大声喊出来&#xff1a; 一&#xff01;只&#xff01;爬&#xff01;虫&#xff01;呀&#xff01;爬&#xff01;呀&#xff01;爬&#xf…

高考志愿填报选专业,兴趣爱好和就业前景哪个优先?

每个人都有自己的兴趣与爱好&#xff0c;而高考志愿填报是在为自己选择职业方向。最理想的状态就是把自己的兴趣和爱好与自己的职业统一起来&#xff0c;让兴趣和爱好促进职业的发展&#xff0c;为职业增添动力。但现实生活中&#xff0c;这种理想的状态并不是每个人都能达到的…

AXI 1G/2.5G Ethernet Subsystem IP核使用过程中参数配置全解

AXI 1G/2.5G Ethernet Subsystem 是一个为FPGA设计的以太网子系统&#xff0c;它支持1Gbps和2.5Gbps的数据传输速率&#xff0c;使得FPGA能够直接进行高速以太网通信。这个子系统通常包含以太网MAC控制器、GMII&#xff08;千兆媒体独立接口&#xff09;或RGMII&#xff08;简化…

抖音视频素材在哪找无版权?免版权可以剪辑视频素材网站分享

在抖音视频制作中&#xff0c;素材的选择至关重要。今天&#xff0c;我就为大家推荐几个宝藏网站&#xff0c;帮你找到既好用又无版权纠纷的视频素材。无论你是新手还是老手&#xff0c;这些网站都能满足你的需求。 蛙学府 首先推荐的是蛙学府。这个网站提供丰富的视频素材&am…

[CUDA编程] cuda graph优化心得

CUDA Graph 1. cuda graph的使用场景 cuda graph在一个kernel要多次执行&#xff0c;且每次只更改kernel 参数或者不更改参数时使用效果更加&#xff1b;但是如果将graph替换已有的kernel组合&#xff0c;且没有重复执行&#xff0c;感觉效率不是很高反而低于原始的kernel调用…

Linux-笔记 设备树插件

目录 前言&#xff1a; 设备树插件的书写规范&#xff1a; 设备树插件的编译&#xff1a; 内核配置: 应用背景&#xff1a; 举例&#xff1a; 前言&#xff1a; 设备树插件&#xff08;Device Tree Blob Overlay&#xff0c;简称 DTBO&#xff09;是Linux内核和嵌入式系统…

【Ardiuno】使用ESP32单片机网络功能调用API接口(图文)

接着上文连通wifi后&#xff0c;我们通过使用HTTPClient库进行网络相关操作&#xff0c;这里我们通过http协议进行接口调用。 为了简化操作&#xff0c;小飞鱼这里使用了本地服务器上的文件作为接口&#xff0c;正常操作时会调用接口后&#xff0c;将服务器返回的数据进行解析…

门控循环单元GRU与长短期记忆网络LSTM

门控循环单元与长短期记忆网络 门控隐状态 问题提出&#xff1a;对于一个序列来说不是每个观察值都是同等重要想只记住相关的观察需要&#xff1a; 能关注的机制&#xff08;更新门&#xff09;能遗忘的机制&#xff08;重置门&#xff09; 第一个词元的影响至关重要。 我们…