用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.rhkb.cn/news/354172.html

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

相关文章

http缓存及http2配置

http缓存及http2配置极大提高了网页加载得速度 1.1 nginx安装 首先是需要安装nginx 去官网下载windows版本的安装包 nginx 命令 nginx start //启动 nginx -s stop nginx -s reload // 重新运行 tasklist /fi "imagename eq nginx.exe" //进程 把打包好的文件copy…

关于Panabit在资产平台中类型划分问题

现场同事问了一个问题&#xff1a;Panabit能不能当做CentOS接入&#xff1f; 我第一反应是&#xff1a;Panabit是个什么鬼&#xff1f;为啥要混编接入&#xff1f;后期维护都是事啊。所以&#xff0c;我就想回答&#xff1a;不能&#xff01; 但是&#xff0c;最好要给出一个…

stable diffusion 局部重绘 reference-only api 接口调试

webUI api payload 插件生成的接口参数不准确&#xff0c;reference-only 的image不是对象&#xff0c;就是不同字符串字段&#xff0c;直接传&#xff0c;不是套image。 综上&#xff0c;那个插件参数不确定&#xff0c;应直接看插件的源码&#xff0c;看它接受什么参数 错误…

若依RuoYi-Vue分离版—富文本Quill的图片支持伸缩大小及布局

若依RuoYi-Vue分离版—富文本Quill的图片支持伸缩大小及布局、工具栏带中文提示 1.在vue.config.js 文件中添加 一下内容2.下载安装插件3.在Editor组件中引入插件4.使用Editor组件&#xff08;特别注意要的加 v-if &#xff09;5.bug 之 imageResize的 img的style丢失1.先创建一…

第九届信也科技杯全球AI算法大赛——语音深度鉴伪识别参赛A榜 0.968961分

遗憾没有进复赛&#xff0c;只是第41名。先贴个A榜的成绩。A榜的前三十名晋级&#xff0c;个个都是99分的大佬&#xff0c;但是B榜的成绩就有点低了&#xff0c;应该是数据不同源的问题&#xff0c;第一名0.78分。官网链接&#xff1a;语音深度鉴伪识别 官方baselin:https://g…

企业设备管理现状与解决方案

在当今企业运营中&#xff0c;设备管理作为保障生产稳定、提升效率的重要环节&#xff0c;其复杂性和挑战性日益凸显。无论是生产车间、石油化工、物业小区&#xff0c;还是消防器材、建筑施工等领域&#xff0c;都面临着设备故障频发、维修流程繁琐等共性问题。 为了帮助企业…

一个简单、快速用于训练和微调中等规模GPT模型的开源项目

大家好&#xff0c;今天给大家分享的是一个简单、快速用于训练和微调中等规模GPT模型的开源项目&#xff0c;该项目旨在拓宽深度学习领域的应用&#xff0c;特别是为深度学习的入门者提供便利。 Nano GPT是一个基于PyTorch的开源项目&#xff0c;由前特斯拉AI负责人Andrej Ka…

干货丨好用的上网行为管理软件有哪些?全网行为管理系统详解

在当今数字化办公环境中&#xff0c;员工的上网行为直接关系到企业信息安全、工作效率以及合规性。 为了有效管理网络资源&#xff0c;确保工作环境的高效与安全&#xff0c;一套强大的上网行为管理软件变得尤为重要。 本文将为您详细介绍几款市场上口碑良好的上网行为管理软件…

【mysql】排错和调优

通用的一些排错方法。 1、查看进程信息 mysql> show full processlist;mysql> show processlist; 2、information_schema information_schema这张数据表保存了MySQL服务器所有数据库的信息。如数据库名&#xff0c;数据库的表&#xff0c;表栏的数据类型与访问权限等。…

企业数据资产入表操作指引

在数字经济时代&#xff0c;数据已成为企业的关键生产要素&#xff0c;其管理和应用至关重要。数据资产入表操作涉及复杂的评估和管理过程&#xff0c;企业需要遵循合规性、真实性和透明性的原则。本指南旨在为企业提供系统化的操作指导&#xff0c;帮助实现数据资产的高效管理…

数据分析必备:一步步教你如何用matplotlib做数据可视化(6)

1、Matplotlib 网格 axes对象的grid()函数将图中网格的可见性设置为on或off。还可以显示网格的主要/次要(或两者)刻度。另外&#xff0c;可以在grid()函数中设置color&#xff0c;linestyle和linewidth属性。 参考以下示例代码 import matplotlib.pyplot as plt import numpy…

【DAMA】掌握数据管理核心:CDGA考试指南

引言&#xff1a;        在当今快速发展的数字化世界中&#xff0c;数据已成为组织最宝贵的资产之一。有效的数据管理不仅能够驱动业务决策&#xff0c;还能提升竞争力和市场适应性。DAMA国际一直致力于数据管理和数字化的研究、实践及相关知识体系的建设。秉承公益、志愿…

【吊打面试官系列-Mysql面试题】SQL 语言包括哪几部分?每部分都有哪些操作关键字?

大家好&#xff0c;我是锋哥。今天分享关于 【SQL 语言包括哪几部分&#xff1f;每部分都有哪些操作关键字&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; SQL 语言包括哪几部分&#xff1f;每部分都有哪些操作关键字&#xff1f; SQL 语言包括数据定义(DDL)、…

终极版本的Typora上传到博客园和csdn

激活插件 下载网址是这个&#xff1a; https://codeload.github.com/obgnail/typora_plugin/zip/refs/tags/1.9.4 解压之后这样的&#xff1a; 解压之后将plugin&#xff0c;复制到自己的安装目录下的resources 点击安装即可&#xff1a; 更改配置文件 "dependencies&q…

Android采用Scroller实现底部二楼效果

需求 在移动应用开发中&#xff0c;有时我们希望实现一种特殊的布局效果&#xff0c;即“底部二楼”效果。这个效果类似于在列表底部拖动时出现额外的内容区域&#xff0c;用户可以继续向上拖动查看更多内容。这种效果可以用于展示广告、推荐内容或其他信息。 效果 实现后的…

论文阅读:基于谱分析的全新早停策略

来自JMLR的一篇论文&#xff0c;https://www.jmlr.org/papers/volume24/21-1441/21-1441.pdf 这篇文章试图通过分析模型权重矩阵的频谱来解释模型&#xff0c;并在此基础上提出了一种用于早停的频谱标准。 1&#xff0c;分类难度对权重矩阵谱的影响 1.1 相关研究 在最近针对…

Matlab|基于V图的配电网电动汽车充电站选址定容-可视化

1主要内容 基于粒子群算法的电动汽车充电站和光伏最优选址和定容 关键词&#xff1a;选址定容 电动汽车 充电站位置 仿真平台&#xff1a;MATLAB 主要内容&#xff1a;代码主要做的是一个电动汽车充电站和分布式光伏的选址定容问题&#xff0c;提出了能够计及地理因素和服…

XL5300 dTOF测距模块 加镜头后可达7.6米测距距离 ±4%测距精度

XL5300 直接飞行时间&#xff08;dToF&#xff09;传感器是一个整体方案dTOF 模组&#xff0c;应用设计简单。片内集成了单光子雪崩二极管&#xff08;SPAD&#xff09;接收阵列以及VCSEL激光发射器。利用自主研发的 SPAD 和独特的ToF 采集与处理技术&#xff0c;XL5300模块可实…

Linux相关

⽹络的性能指标 Linux ⽹络协议栈是根据 TCP/IP 模型来实现的&#xff0c; TCP/IP 模型由应⽤层、传输层、⽹络层和⽹络接⼝层&#xff0c;共四层组成&#xff0c;每⼀层都有各⾃的职责。 基本指标&#xff1a; 带宽&#xff0c;表示链路的最⼤传输速率&#xff0c;单位是 b…

手持风扇哪个品牌好?五大手持风扇品牌推荐!

随着炎热夏季的到来&#xff0c;手持风扇已成为人们出行的必备清凉神器。然而&#xff0c;面对市场上众多品牌的手持风扇&#xff0c;如何选择一款既时尚又高效的产品成为了许多消费者的难题。为了解决这个困扰&#xff0c;我们精心挑选了五大手持风扇品牌进行推荐。这些品牌不…