虽然现在我们日常生活中很少用到计算器,但是第一次尝试在Android Studio上做一个计算器

程序设计步骤:
(1)在布局文件中声明编辑文件框EditText,按钮Button等组件。
(2)在MainActivity中获取组件实例。
(3)通过swtich函数,判断输入的内容,并进行相应操作,通过getText()获取文本内容,setText()显示。

程序代码设计:
布局实现:在activi_main.xml中设置。使用线性布局(LinearLayout)与网格布局(GridLayout)来设置界面。在设计区域设置一个4行4列的网格布局,每行划分为均等的16个按钮,分别代表数字0-9,小数点,和运算符加减乘除以及等于号。

最终效果图如下:

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:layout_marginLeft="30dp"android:layout_marginTop="16dp"android:layout_marginRight="30dp"android:layout_marginBottom="20dp"android:orientation="vertical"tools:context=".MainActivity"><TextViewandroid:id="@+id/Answer"android:layout_width="match_parent"android:layout_height="189dp"android:layout_weight="0.33"android:hint="Result"android:textSize="34sp" /><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"><Buttonandroid:id="@+id/btn10"android:layout_width="wrap_content"android:layout_height="76dp"android:background="@color/purple_200"android:text="C"android:textColor="#F30C4D"android:textSize="20sp" /><Buttonandroid:id="@+id/btn11"android:layout_width="wrap_content"android:layout_height="76dp"android:background="@color/purple_200"android:text="%"android:textColor="#FF5722"android:textSize="20sp" /><Buttonandroid:id="@+id/btn12"android:layout_width="175dp"android:layout_height="76dp"android:background="@color/purple_200"android:text="Del"android:textColor="#F30C4D"android:textSize="20sp" /></LinearLayout><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"><Buttonandroid:id="@+id/btn1"android:layout_width="wrap_content"android:layout_height="76dp"android:background="@color/purple_200"android:text="1"android:textSize="26dp" /><Buttonandroid:id="@+id/btn2"android:layout_width="wrap_content"android:layout_height="76dp"android:background="@color/teal_200"android:text="2"android:textSize="26dp" /><Buttonandroid:id="@+id/btn3"android:layout_width="wrap_content"android:layout_height="76dp"android:background="@color/purple_200"android:text="3"android:textSize="26dp" /><Buttonandroid:id="@+id/btnadd"android:layout_width="wrap_content"android:layout_height="77dp"android:background="#00BCD4"android:text="+"android:textColor="#FFEB3B"android:textSize="26dp" /></LinearLayout><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"><Buttonandroid:id="@+id/btn4"android:layout_width="wrap_content"android:layout_height="76dp"android:background="@color/purple_200"android:text="4"android:textSize="26dp" /><Buttonandroid:id="@+id/btn5"android:layout_width="wrap_content"android:layout_height="76dp"android:background="@color/purple_200"android:text="5"android:textSize="26dp" /><Buttonandroid:id="@+id/btn6"android:layout_width="wrap_content"android:layout_height="76dp"android:background="@color/purple_200"android:text="6"android:textSize="26dp" /><Buttonandroid:id="@+id/btnsub"android:layout_width="wrap_content"android:layout_height="76dp"android:background="@color/purple_200"android:text="-"android:textColor="#FFEB3B"android:textSize="26dp" /></LinearLayout><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"><Buttonandroid:id="@+id/btn7"android:layout_width="wrap_content"android:layout_height="76dp"android:background="@color/purple_200"android:text="7"android:textSize="26dp" /><Buttonandroid:id="@+id/btn8"android:layout_width="wrap_content"android:layout_height="76dp"android:background="@color/purple_200"android:text="8"android:textSize="26dp" /><Buttonandroid:id="@+id/btn9"android:layout_width="wrap_content"android:layout_height="76dp"android:background="@color/purple_200"android:text="9"android:textSize="26dp" /><Buttonandroid:id="@+id/btnmul"android:layout_width="wrap_content"android:layout_height="match_parent"android:background="@color/purple_200"android:text="×"android:textColor="#FFEB3B"android:textSize="26dp" /></LinearLayout><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"><Buttonandroid:id="@+id/btn0"android:layout_width="wrap_content"android:layout_height="76dp"android:background="@color/purple_200"android:text="0"android:textColor="#E91E63"android:textSize="26dp" /><Buttonandroid:id="@+id/btndot"android:layout_width="wrap_content"android:layout_height="76dp"android:background="@color/purple_200"android:text="."android:textSize="26dp" /><Buttonandroid:id="@+id/btnequel"android:layout_width="wrap_content"android:layout_height="76dp"android:background="@color/purple_200"android:text="="android:textColor="#FF5722"android:textSize="26dp" /><Buttonandroid:id="@+id/btndiv"android:layout_width="wrap_content"android:layout_height="76dp"android:background="@color/purple_200"android:text="÷"android:textColor="#FFEB3B"android:textSize="26dp" /></LinearLayout></LinearLayout>

java文件:

package com.example.mycalculater;import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;public class MainActivity extends AppCompatActivity {Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,badd,bsub,bmul,bdiv,bdot,bequal,b10,b12;TextView ans;double var1,var2;boolean add,sub,mul,div,n10;boolean sq = false;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);b1= (Button) findViewById(R.id.btn1);b2= (Button) findViewById(R.id.btn2);b3= (Button) findViewById(R.id.btn3);b4= (Button) findViewById(R.id.btn4);b5= (Button) findViewById(R.id.btn5);b6= (Button) findViewById(R.id.btn6);b7= (Button) findViewById(R.id.btn7);b8= (Button) findViewById(R.id.btn8);b9= (Button) findViewById(R.id.btn9);b0= (Button) findViewById(R.id.btn0);badd= (Button) findViewById(R.id.btnadd);bsub= (Button) findViewById(R.id.btnsub);bmul= (Button) findViewById(R.id.btnmul);bdiv= (Button) findViewById(R.id.btndiv);bdot= (Button) findViewById(R.id.btndot);bequal= (Button) findViewById(R.id.btnequel);b10= (Button) findViewById(R.id.btn10);b12= (Button) findViewById(R.id.btn12);ans = (TextView) findViewById(R.id.Answer);b1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {if(sq==true){ans.setText(null);ans.setText(ans.getText()+"1");sq=false;}elseans.setText(ans.getText()+"1");}});b2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {if(sq==true){ans.setText(null);ans.setText(ans.getText()+"2");sq=false;}elseans.setText(ans.getText()+"2");}});b3.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {if(sq==true){ans.setText(null);ans.setText(ans.getText()+"3");sq=false;}elseans.setText(ans.getText()+"3");}});b4.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {if(sq==true){ans.setText(null);ans.setText(ans.getText()+"4");sq=false;}elseans.setText(ans.getText()+"4");}});b5.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {if(sq==true){ans.setText(null);ans.setText(ans.getText()+"5");sq=false;}elseans.setText(ans.getText()+"5");}});b6.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {if(sq==true){ans.setText(null);ans.setText(ans.getText()+"6");sq=false;}elseans.setText(ans.getText()+"6");}});b7.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {if(sq==true){ans.setText(null);ans.setText(ans.getText()+"7");sq=false;}elseans.setText(ans.getText()+"7");}});b8.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {if(sq==true){ans.setText(null);ans.setText(ans.getText()+"8");sq=false;}elseans.setText(ans.getText()+"8");}});b9.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {if(sq==true) {ans.setText(null);ans.setText(ans.getText()+"9");sq=false;}elseans.setText(ans.getText()+"9");}});b0.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {if(sq==true){ans.setText(null);ans.setText(ans.getText()+"0");sq=false;}elseans.setText(ans.getText()+"0");}});bdot.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {try {if(ans.getText().toString().contains("."))ans.setText(ans.getText()+"");elseans.setText(ans.getText()+".");} catch (Exception e) {ans.setText("出错");}}});badd.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {try {var1 = Double.parseDouble(ans.getText()+"");add=true;ans.setText(null);}catch (RuntimeException a){ans.setText("错误");sq=true;}}});bsub.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {try {var1 = Double.parseDouble(ans.getText()+"");sub=true;ans.setText(null);}catch(RuntimeException a){ans.setText("错误");sq=true;}}});bmul.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {try {var1 = Double.parseDouble(ans.getText()+"");mul=true;ans.setText(null);}catch(RuntimeException a){ans.setText("错误");sq=true;}}});bdiv.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {/*var1 = Double.parseDouble(ans.getText()+"");div=true;ans.setText(null);*/try {var1 = Double.parseDouble(ans.getText()+"");div=true;ans.setText(null);}catch(RuntimeException a){ans.setText("错误");sq=true;}}});b10.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {ans.setText(null);add=false;sub=false;mul=false;div=false;}});b12.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {try {String temp = "";temp = ans.getText().toString().substring(0, ans.length() - 1);ans.setText(temp + "");}catch(RuntimeException a){ans.setText("错误");}}});bequal.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {try {var2 = Double.parseDouble(ans.getText() + "");if (add == true) {ans.setText(var1 + var2 + "");add = false;sq = true;}if (sub == true) {ans.setText(var1 - var2 + "");sub = false;sq = true;}if (mul == true) {ans.setText(var1 * var2 + "");mul = false;sq = true;}if (div == true) {ans.setText(var1 / var2 + "");div = false;sq = true;}if (n10 == true) {ans.setText(0 + "");n10 = false;sq = true;}}catch(RuntimeException a){}/*String temp="";temp=ans.getText().toString().substring(0,ans.length()-1);ans.setText(temp+"");*/}});//        public void opratorCalc(String operatorNumber,String currentOprator)
//        {
//            if(TextUtils.isEmpty(lastOperators))
//            {
//                firstNumber = Double.parseDouble(operatorNumber);
//                return;
//            }}
}

Android Studio制作一个简单的计算器APP相关推荐

  1. 物联网控制APP入门专题(四)---使用android studio制作一个控制页面的APP框架

    摘要:上篇文章讲了如何用阿里云IoT Studio快速制作一个网页版的手机端,以及通过第三方平台将这个网页打包成一个APK文件,使它可以安装到手机实现APP的功能.但是使用第三方平台做的APP是需要收 ...

  2. 如何使用android studio制作一个阿里云物联网APP

    摘要:要想学会物联网技术,需要掌握的知识真的有太多了,其中一个关键的技能,也是决定物联网技能等级的,就是移动端开发能力.当然,现在有很多平台都提供了各种各样的移动端应用,但是都相对封闭,我们无法掌握其 ...

  3. 使用Android studio做一个简单的网站APP

    1.首先创建一个空白Android项目 2.然后打开项目,切换为Android视图,这时候会看到三个文件夹,分别是manifests.java.res.首先修改res/layout下的activity ...

  4. android计算器功能实现,在android中利用 studio实现一个简单的计算器功能

    在android中利用 studio实现一个简单的计算器功能 发布时间:2020-11-07 15:35:20 来源:亿速云 阅读:168 作者:Leah 这篇文章将为大家详细讲解有关在android ...

  5. 使用Android Studio编写一个简单的音乐盒

    文章目录 一.知识要点 二.xml代码 activity_main.xml 三.java代码 MainActivity.java MusicService.java 四.运行界面展示 五. 源码Git ...

  6. python计算器教程,用Python程序制作一个简单的计算器

    用Python程序制作一个简单的计算器 在此示例中,您将学习创建一个简单的计算器,该计算器可以根据用户的输入进行加,减,乘或除. 要理解此示例,您应该了解以下Python编程主题: 通过函数创建简单计 ...

  7. 蓝牙App设计2:使用Android Studio制作一个蓝牙软件(包含:代码实现等)

    前言:蓝牙聊天App设计全部有三篇文章(一.UI界面设计,二.蓝牙搜索配对连接实现,三.蓝牙连接聊天),这篇文章是:二.蓝牙搜索配对连接实现. 课程1:Android Studio小白安装教程,以及第 ...

  8. android菜单动画,利用 android studio 制作一个菜单动画

    目的:利用Android studio 编一个菜单动画,以便初步了解Android studio的基本操作,初步了解Android开发的思考方法. 技术: 1.RelativeLayout. 2.sr ...

  9. 今天我教大家用js制作一个简单的计算器

    首先我们先打好框架 代码如图: 下面我们来看一下页面显示效果: 然后我们开始写js效果: 这样,我们一个简单的计算器就做好了,效果如图:

  10. webview和android做壳,Android Studio 制作一个 WebView 外壳

    背景 做为一条BS狗,开发应用当然趋向于BS,为了方便维护,降低开发成本,决定只做一个webview做为程序入口,所有的功能页面集中在服务端. 本次踩坑遇到了 js不支持.点击返回直接退出应用.htt ...

最新文章

  1. MyEclipse提示键配置、提示快捷键、提示背景色、关键字颜色、代码显示
  2. 【每日一算法】删列造序
  3. mysql installer图解_MySQL Installer GUI - 图解
  4. 学习笔记:cache 和spring cache 技术(1)
  5. MySQL 笔记5 -- 多表查询
  6. Ansible Playbook企业案例:利用 playbook 安装 nginx、安装和卸载 httpd、安装mysql
  7. 在UE4中创建受《羞辱》启发的环境
  8. 文本分类--情感分析
  9. python decimal_【进阶】嫌弃Python慢,试试这几个方法?
  10. 数字化时代的K12与学前教育行业洞察
  11. 获取时间CLOCK_MONOTONIC学习——顺记第一次与开源项目交互
  12. pythondjango项目集成_Django集成celery实战小项目
  13. pandas去掉html标签,用Pandas清理HTML表
  14. [BalticOI2002]Bicriterial routing
  15. 微信客服系统开发SDK使用教程-给好友发消息任务
  16. 浅谈三种使用Redis实现MQ的方式
  17. BT.656标准简介
  18. 《Spark实时词频统计处理系统》
  19. ui效果图生成html,四步制作一个高大上的iPhone效果图模版 UI呀-学UI设计网
  20. IOS 插屏广告弹窗

热门文章

  1. win10修改C盘Users底下的账号名字
  2. Apache ShenYu源码阅读系列-Dubbo插件
  3. 360浏览器极速模式和兼容模式
  4. STM32——EMWIN 字体(二十)
  5. 3D建模就业前景如何?
  6. 既往不恋,当下不杂,未来不迎
  7. nmos导通流向_MOS管类型-MOS管4种类型与工作原理解析
  8. flask-uploads
  9. 深度学习AI美颜系列---美图秀秀AI美图之跨次元相机特效
  10. 单细胞数据挖掘 P 3.1 QC以及细胞周期判断