在网课上学习了计算器的制作方法,并自己做了小常识,看完一便后,感觉自己会了,思想也明白了,但是当关掉视频真正开始做的时候会发向许多的问题,自己在前的好多语法用的并不是很熟练,但是反复的查阅资料,观看教程,还是可以完成完成这个项目的开发。

activity_main.xml:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto"
  4. xmlns:tools="http://schemas.android.com/tools"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent"
  7. android:orientation="vertical"
  8. tools:context=".MainActivity">
  9.  
  10. <TextView
  11. android:id="@+id/tvScreen"
  12. android:layout_width="match_parent"
  13. android:layout_height="wrap_content"
  14. android:text=""
  15. android:gravity="right"
  16. android:textAppearance="?android:attr/textAppearanceLarge"/>
  17.  
  18. <TableLayout
  19. android:layout_width="fill_parent"
  20. android:layout_height="wrap_content"
  21. android:layout_weight="1">
  22.  
  23. <TableRow
  24. android:layout_width="fill_parent"
  25. android:layout_height="wrap_content">
  26.  
  27. <Button
  28. android:id="@+id/btn1"
  29. android:layout_width="wrap_content"
  30. android:layout_height="match_parent"
  31. android:layout_weight="1"
  32. android:text="1" />
  33. <Button
  34. android:id="@+id/btn2"
  35. android:layout_width="wrap_content"
  36. android:layout_height="wrap_content"
  37. android:text="2"
  38. android:layout_weight="1"/>
  39. <Button
  40. android:id="@+id/btn3"
  41. android:layout_width="wrap_content"
  42. android:layout_height="wrap_content"
  43. android:text="3"
  44. android:layout_weight="1"/>
  45. <Button
  46. android:id="@+id/btnAdd"
  47. android:layout_width="wrap_content"
  48. android:layout_height="wrap_content"
  49. android:text="+"
  50. android:layout_weight="1"/>
  51.  
  52. </TableRow>
  53. <TableRow
  54. android:layout_width="fill_parent"
  55. android:layout_height="wrap_content">
  56.  
  57. <Button
  58. android:id="@+id/btn4"
  59. android:layout_width="wrap_content"
  60. android:layout_height="wrap_content"
  61. android:text="4"
  62. android:layout_weight="1"/>
  63. <Button
  64. android:id="@+id/btn5"
  65. android:layout_width="wrap_content"
  66. android:layout_height="wrap_content"
  67. android:text="5"
  68. android:layout_weight="1"/>
  69. <Button
  70. android:id="@+id/btn6"
  71. android:layout_width="wrap_content"
  72. android:layout_height="wrap_content"
  73. android:text="6"
  74. android:layout_weight="1"/>
  75. <Button
  76. android:id="@+id/btnSub"
  77. android:layout_width="wrap_content"
  78. android:layout_height="wrap_content"
  79. android:text="-"
  80. android:layout_weight="1"/>
  81.  
  82. </TableRow>
  83. <TableRow
  84. android:layout_width="fill_parent"
  85. android:layout_height="wrap_content">
  86.  
  87. <Button
  88. android:id="@+id/btn7"
  89. android:layout_width="wrap_content"
  90. android:layout_height="wrap_content"
  91. android:text="7"
  92. android:layout_weight="1"/>
  93. <Button
  94. android:id="@+id/btn8"
  95. android:layout_width="wrap_content"
  96. android:layout_height="wrap_content"
  97. android:text="8"
  98. android:layout_weight="1"/>
  99. <Button
  100. android:id="@+id/btn9"
  101. android:layout_width="wrap_content"
  102. android:layout_height="wrap_content"
  103. android:text="9"
  104. android:layout_weight="1"/>
  105. <Button
  106. android:id="@+id/btnX"
  107. android:layout_width="wrap_content"
  108. android:layout_height="wrap_content"
  109. android:text="*"
  110. android:layout_weight="1"/>
  111.  
  112. </TableRow>
  113. <TableRow
  114. android:layout_width="fill_parent"
  115. android:layout_height="wrap_content">
  116.  
  117. <Button
  118. android:id="@+id/btnClear"
  119. android:layout_width="wrap_content"
  120. android:layout_height="wrap_content"
  121. android:text="C"
  122. android:layout_weight="1"/>
  123. <Button
  124. android:id="@+id/btn0"
  125. android:layout_width="wrap_content"
  126. android:layout_height="wrap_content"
  127. android:text="0"
  128. android:layout_weight="1"/>
  129. <Button
  130. android:id="@+id/btnResult"
  131. android:layout_width="wrap_content"
  132. android:layout_height="wrap_content"
  133. android:text="="
  134. android:layout_weight="1"/>
  135. <Button
  136. android:id="@+id/btnDiv"
  137. android:layout_width="wrap_content"
  138. android:layout_height="wrap_content"
  139. android:text="/"
  140. android:layout_weight="1"/>
  141.  
  142. </TableRow>
  143. </TableLayout>
  144.  
  145. </LinearLayout>

MainActivity.java:

  1. package com.example.counte;
  2.  
  3. import androidx.appcompat.app.AppCompatActivity;
  4.  
  5. import android.os.Bundle;
  6. import android.view.Menu;
  7. import android.view.View;
  8. import android.widget.Button;
  9. import android.widget.TextView;
  10.  
  11. import java.util.ArrayList;
  12. import java.util.List;
  13.  
  14. public class MainActivity extends AppCompatActivity {
  15.  
  16. private TextView tvScrean;
  17. private List<item> items=new ArrayList<item>();
  18. @Override
  19. protected void onCreate(Bundle savedInstanceState) {
  20. super.onCreate(savedInstanceState);
  21. setContentView(R.layout.activity_main);
  22.  
  23. tvScrean=(TextView)findViewById((R.id.tvScreen));
  24. findViewById(R.id.btn0).setOnClickListener((View.OnClickListener) this);
  25. findViewById(R.id.btn1).setOnClickListener((View.OnClickListener) this);
  26. findViewById(R.id.btn2).setOnClickListener((View.OnClickListener) this);
  27. findViewById(R.id.btn3).setOnClickListener((View.OnClickListener) this);
  28. findViewById(R.id.btn4).setOnClickListener((View.OnClickListener) this);
  29. findViewById(R.id.btn5).setOnClickListener((View.OnClickListener) this);
  30. findViewById(R.id.btn6).setOnClickListener((View.OnClickListener) this);
  31. findViewById(R.id.btn7).setOnClickListener((View.OnClickListener) this);
  32. findViewById(R.id.btn8).setOnClickListener((View.OnClickListener) this);
  33. findViewById(R.id.btn9).setOnClickListener((View.OnClickListener) this);
  34. findViewById(R.id.btnAdd).setOnClickListener((View.OnClickListener) this);
  35. findViewById(R.id.btnSub).setOnClickListener((View.OnClickListener) this);
  36. findViewById(R.id.btnX).setOnClickListener((View.OnClickListener) this);
  37. findViewById(R.id.btnDiv).setOnClickListener((View.OnClickListener) this);
  38. findViewById(R.id.btnClear).setOnClickListener((View.OnClickListener) this);
  39. findViewById(R.id.btnResult).setOnClickListener((View.OnClickListener) this);
  40.  
  41. }
  42.  
  43. public void onClick(View v){
  44. switch (v.getId()){
  45. case R.id.btn0:
  46. tvScrean.append("0");
  47. break;
  48. case R.id.btn1:
  49. tvScrean.append("1");
  50. break;
  51. case R.id.btn2:
  52. tvScrean.append("2");
  53. break;
  54. case R.id.btn3:
  55. tvScrean.append("3");
  56. break;
  57. case R.id.btn4:
  58. tvScrean.append("4");
  59. break;
  60. case R.id.btn5:
  61. tvScrean.append("5");
  62. break;
  63. case R.id.btn6:
  64. tvScrean.append("6");
  65. break;
  66. case R.id.btn7:
  67. tvScrean.append("7");
  68. break;
  69. case R.id.btn8:
  70. tvScrean.append("8");
  71. break;
  72. case R.id.btn9:
  73. tvScrean.append("9");
  74. break;
  75. case R.id.btnAdd:
  76. items.add(new item(Double.parseDouble(tvScrean.getText().toString()),Types.Num));
  77. check();
  78. items.add(new item(0,Types.Add));
  79. tvScrean.setText("");//清空文本
  80. break;
  81. case R.id.btnSub:
  82. items.add(new item(Double.parseDouble(tvScrean.getText().toString()),Types.Num));
  83. check();
  84. items.add(new item(0,Types.Sub));
  85. tvScrean.setText("");//清空文本
  86. break;
  87. case R.id.btnX:
  88. items.add(new item(Double.parseDouble(tvScrean.getText().toString()),Types.Num));
  89. check();
  90. items.add(new item(0,Types.X));
  91. tvScrean.setText("");//清空文本
  92. break;
  93. case R.id.btnDiv:
  94. items.add(new item(Double.parseDouble(tvScrean.getText().toString()),Types.Num));
  95. check();
  96. items.add(new item(0,Types.Div));
  97. tvScrean.setText("");//清空文本
  98. break;
  99. case R.id.btnClear:
  100. tvScrean.setText("");
  101. items.clear();//数组清空
  102. break;
  103. case R.id.btnResult:
  104. items.add(new item(Double.parseDouble(tvScrean.getText().toString()),Types.Num));
  105. check();
  106. tvScrean.setText(items.get(0).value+"");
  107. items.clear();//清空数组
  108. break;
  109.  
  110. }
  111. }
  112. public void check(){
  113. if(items.size()>=3){
  114.  
  115. double a=items.get(0).value;
  116. double b=items.get(2).value;
  117. int opt=items.get(1).type;
  118.  
  119. items.clear();
  120.  
  121. switch (opt){
  122. case Types.Add:
  123. items.add(new item(a+b,Types.Num));
  124. break;
  125. case Types.Sub:
  126. items.add(new item(a-b,Types.Num));
  127. break;
  128. case Types.X:
  129. items.add(new item(a*b,Types.Num));
  130. break;
  131. case Types.Div:
  132. items.add(new item(a/b,Types.Num));
  133. break;
  134. }
  135. }
  136. }
  137. }

item.java:

  1. package com.example.counte;
  2.  
  3. public class item {
  4.  
  5. public item(double value,int type){
  6. this.value=value;
  7. this.type=type;
  8. }
  9. public double value=0;
  10. public int type=0;
  11. }

Types.java:

  1. package com.example.counte;
  2.  
  3. public class Types {
  4. public static final int Add=1;
  5. public static final int Sub=2;
  6. public static final int X=3;
  7. public static final int Div=4;
  8. public static final int Num=5;
  9. }

但其中出现的最为明显的问题:

APP-计算器的更多相关文章

  1. 第一个安卓app——计算器

    几天前,我花了一天时间,结合这段时间所学知识开发出了一个简单的计算器,它由两个TextView和23个Button组成,代码会放在文章结尾. TextView TextView:上面一个TextVie ...

  2. 复利计算器app发布

    复利计算器app发布 抱歉:由于无法实现服务端的持续开启,发布的app仅为简单的单机版,暂时舍弃了c/s版本的一些功能,如:投资动态管理功能. 应用详情博客:请点击这里 apk下载地址1(百度手机助手 ...

  3. ★房贷计算器 APP

    一.目的 1. 这是一个蛮有用的小工具 2. 之前看了很多demo,第一次来完全的自己实现一个APP 3. 完成之后提交 App Store 4. 作为Good Coder的提交审核材料 二.排期 周 ...

  4. app自动化测试之实战应用(魅族计算器)

    模拟魅族计算器加法计算: from appium import webdriver desired_caps = {} desired_caps['deviceName'] = '621QECQ23D ...

  5. 第一个APP:IOS做简单运算的计算器

    步骤: 1.打开Xcode,单机Creat a new Xcode project 2.左边选择ios下Application,右边选择single view Application 3.填写项目名称 ...

  6. 【IOS开发笔记03-视图相关】简单计算器的实现

    UIView 经过前几天的快速学习,我们初步了解的IOS开发的一些知识,中间因为拉的太急,忽略了很多基础知识点,这些知识点单独拿出来学习太过枯燥,我们在今后的项目中再逐步补齐,今天我们来学习APP视图 ...

  7. App测试

    (1)App独特测试点: 客户端兼容性测试:系统版本.不同深度定制的rom.屏幕分辨率.中断测试.安装.卸载.升级.对其他程序的干扰等 需要的一些工具: appnium / lr /  jmeter ...

  8. WWDC 后苹果最新 App Store 审核条款!

        WWDC 2016 大会之后,苹果公司发布了四个全新平台:iOS,macOS,watchOS 和 tvOS.并且在此之后,苹果应用商店审核条款也同时进行了更新——貌似不算进行了更新,简直就是重 ...

  9. Windows下部署Appium教程(Android App自动化测试框架搭建)

    摘要: 1,appium是开源的移动端自动化测试框架: 2,appium可以测试原生的.混合的.以及移动端的web项目: 3,appium可以测试ios.android.firefox os: 4,a ...

  10. 菜鸟学Android编程——简单计算器《一》

    菜鸟瞎搞,高手莫进 本人菜鸟一枚,最近在学Android编程,网上看了一些视频教程,于是想着平时手机上的计算器应该很简单,自己何不尝试着做一个呢? 于是就冒冒失失的开撸了. 简单计算器嘛,功能当然很少 ...

随机推荐

  1. [百度之星]资格赛:IP聚合

    保持着也不知道什么情怀,觉得到现在才能发出来.这道题做完之后看了其他人的代码,然后再看我的,不得不说,真是幼稚的很,尤其是输入这一块,都什么跟什么啊. 但相较于之前来说,不像以前慌张了,学会先思考再去 ...

  2. 全局保存ajax请求到的数据

    var menuJson = (function() {        var result;        $.ajax({            type: 'get',            u ...

  3. Bug 佛祖镇楼

    原文链接:https://www.cnblogs.com/xdp-gacl/p/4198935.html // _ooOoo_ // o8888888o // 88" . "88 ...

  4. 吴裕雄--天生自然C++语言学习笔记:C++ 日期 & 时间

    C++ 标准库没有提供所谓的日期类型.C++ 继承了 C 语言用于日期和时间操作的结构和函数.为了使用日期和时间相关的函数和结构,需要在 C++ 程序中引用 <ctime> 头文件. 有四 ...

  5. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-map-marker

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  6. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-bold

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  7. 第一篇web框架

    第一篇web框架 http协议 web应用和web框架 主 文 http协议 HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维 ...

  8. [GXYCTF2019]BabyUpload

    0x00 知识点 文件类型绕过: Content-Type: image/jpeg apache环境下上传.hatcess 首先上传一个.htaccess内容如下的文件 :SetHandler app ...

  9. CCCC L3-013. 非常弹的球

    题意: 刚上高一的森森为了学好物理,买了一个“非常弹”的球.虽然说是非常弹的球,其实也就是一般的弹力球而已.森森玩了一会儿弹力球后突然想到,假如他在地上用力弹球,球最远能弹到多远去呢?他不太会,你能帮 ...

  10. jquery实现搜索框从中间向两边扩展(左右放大)

    显示效果: 隐藏效果: 前端核心代码如下: <div class="search-icon col-md-2 col-sm-2 col-xs-4 col-md-offset-5 col ...