Android Studio制作简单计算器App

计算机界面如图:

程序设计步骤:

(1)在布局文件中声明编辑文件框EditText,按钮Button等组件。

(2)在MainActivity中获取组件实例。

(3)通过swtich函数,判断输入的内容,并进行相应操作,通过getText()获取文本内容,setText()显示。

程序代码设计:

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

功能实现:在MainActivity.java页面编写。实现简单加减乘除。

package com.example.work_calculater;

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 = findViewById(R.id.btn_1);

btn2 = findViewById(R.id.btn_2);

btn3 = findViewById(R.id.btn_3);

btn4 = findViewById(R.id.btn_4);

btn5 = findViewById(R.id.btn_5);

btn6 = findViewById(R.id.btn_6);

btn7 = findViewById(R.id.btn_7);

btn8 = findViewById(R.id.btn_8);

btn9 = findViewById(R.id.btn_9);

btn0 = findViewById(R.id.btn_0);

add = findViewById(R.id.btn_add);

sub = findViewById(R.id.btn_sub);

mul = findViewById(R.id.btn_mul);

div = findViewById(R.id.btn_div);

equ = findViewById(R.id.btn_equ);

dot = findViewById(R.id.btn_dot);

clear = findViewById(R.id.btn_clear);

result = 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;

}

}

}

}

程序运行结果如图:

android页面布局计算机,Android Studio制作简单计算器App相关推荐

  1. 计算器android studio代码,Android studio实现简单计算器

    本文实例为大家分享了Android studio实现简单计算器的具体代码,供大家参考,具体内容如下 需求分析 在Android studio中设计并实现一个简单的计算器,实现连续的加减乘除运算. 界面 ...

  2. C语言练手项目--C 语言制作简单计算器

    C 语言制作简单计算器 一.需求 二.实现 1.思路 2.代码 3.运行结果 三.参考链接 一.需求 使用 C 语言做一个简单的计算器,能执行加.减.乘.除操作 二.实现 1.思路 (1)标准输入到s ...

  3. Android 开发--利用android studio 制作简单文字打怪升级游戏(伪地牢类)1.开始

    本人目前是大三考研党,之前有学过一些杂七杂八的知识,但是没有办法利用这些知识制作一些真正有用的东西出来.后来自学了android开发,学会使用了android studio,终于决定利用android ...

  4. Android 开发--利用android studio 制作简单文字打怪升级游戏(伪地牢类)2.主页面及部分事件设计

    时隔大半年,总算抽出时间更新这个博客了.去年下半年因为大四忙着备战考研,一直没有心情将第二篇继续更新,今年上半年又忙着搞毕业设计,焦头烂额了属于是orz 由于我的android studio的模拟器实 ...

  5. 用android studio 完成简单计算器设计开发日志

    简单计算器的设计是学习安卓的第一个APP的设计,我发现,其实安卓跟Java有很大的相似性,虽然界面的设计要用到前端的设计,但是功能的实现基本都是使用Java来实现的,但由于对Android studi ...

  6. Android Studio简单计算器App实现

    一.内容: 基于AndroidStudio,实现一个简易的计算器(界面+简单的计算). 二.思路 1.首先设计界面,activity_main.xml 计算器界面,使用了网格布局GridLayout, ...

  7. Android 页面布局xd,Adobe XD强大的布局系列工具 助你事半功倍

    数字设计有多种形式-从移动端.桌面网站到显示屏应用程序.智能助手.车载娱乐系统(例如CarPlay和Android Auto)等等.为当今的应用程序打造数字体验意味着需要针对各种屏幕尺寸.布局和交互类 ...

  8. android页面布局更改,使用setContentView的方式更换布局文件从而更换界面

    使用转换Activity的布局文件的方式,从而达到转换android页面的目的(这里没有使用Intent): 程序很简单,摆一个大概出来: package com.seed.lee.setConten ...

  9. android创建布局文件,android学习——Android Studio下创建menu布局文件

    一.问题: android studio项目中没有看到menu文件夹: 在android studio项目中想要添加menu布局文件,一开始我的做法是:直接在res文件夹右键选择xml文件来添加,如下 ...

最新文章

  1. [转载]中国工商银行软件开发部门职业发展
  2. 你的老师看你编码的样子
  3. 64 DLL动态链接库换一台电脑就不能加载
  4. NET Core微服务之路:自己动手实现Rpc服务框架,基于DotEasy.Rpc服务框架的介绍和集成...
  5. weka libsvm
  6. Vue.js(5)- 全局组件
  7. win7如何添加终端服务器,Windows7系统超级终端的添加方法 win7如何添加超级终端...
  8. 哈佛大学刘小乐教授讲授的计算生物学和生物信息学导论 (2020 视频+资料)
  9. 酷爆了!阿里预测2020十大科技趋势
  10. 《机器学习实战》学习总结(四)逻辑回归原理
  11. python链接器编译器实现_一个链接器的实现「一」
  12. 系统地编译Hi3519过程及其处理问题思路
  13. 国家地理相关资源数据库
  14. Iphone 5s 8.0.2越狱
  15. 小米浏览器html文件怎么打开方式,怎么设置浏览器-开启小米浏览器这三个功能,切换、搜索、编辑都让你事半功倍...
  16. 使用阿帕奇服务器配置多个网站站点的方法
  17. 反转链表的实现(三种方法)
  18. 华为狼性文化遭质疑,那我们当个佛系程序员可好?
  19. 基于CNN的微信二维码引擎OpenCV开源!
  20. 实习日记(9)——C++编译出现error in locking authority file ~/.Xauthority

热门文章

  1. 蓝牙耳机一个响一个不响怎么办
  2. 转行学java被辞退_不是所有行业都是“跳槽穷半年,转行穷三年”,至少转行学Java不是!...
  3. 每日一题(二三)function Foo(){ Foo.a = function(){console.log(1); } this.a = function(){console.log(2)}) Fo
  4. 哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(低年级)I 小乐乐切方块
  5. You must restart adb and Eclipse处理方法(sjk_daemon.exe占用5037端口)
  6. 基于TensorRT的神经网络推理与加速
  7. SIFT之极值点检测
  8. 【OpenCV】马赛克算法
  9. oracle与sun的java_甲骨文吞Sun Java何去何从?
  10. 事件clientX、pageX、screenX、offsetX