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

activity_main.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:orientation="vertical"
tools:context=".MainActivity"> <TextView
android:id="@+id/tvScreen"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text=""
android:gravity="right"
android:textAppearance="?android:attr/textAppearanceLarge"/> <TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"> <TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content"> <Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="1" />
<Button
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2"
android:layout_weight="1"/>
<Button
android:id="@+id/btn3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="3"
android:layout_weight="1"/>
<Button
android:id="@+id/btnAdd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="+"
android:layout_weight="1"/> </TableRow>
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content"> <Button
android:id="@+id/btn4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="4"
android:layout_weight="1"/>
<Button
android:id="@+id/btn5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="5"
android:layout_weight="1"/>
<Button
android:id="@+id/btn6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="6"
android:layout_weight="1"/>
<Button
android:id="@+id/btnSub"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="-"
android:layout_weight="1"/> </TableRow>
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content"> <Button
android:id="@+id/btn7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="7"
android:layout_weight="1"/>
<Button
android:id="@+id/btn8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="8"
android:layout_weight="1"/>
<Button
android:id="@+id/btn9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="9"
android:layout_weight="1"/>
<Button
android:id="@+id/btnX"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="*"
android:layout_weight="1"/> </TableRow>
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content"> <Button
android:id="@+id/btnClear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="C"
android:layout_weight="1"/>
<Button
android:id="@+id/btn0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:layout_weight="1"/>
<Button
android:id="@+id/btnResult"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="="
android:layout_weight="1"/>
<Button
android:id="@+id/btnDiv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="/"
android:layout_weight="1"/> </TableRow>
</TableLayout> </LinearLayout>

MainActivity.java:

package com.example.counte;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView; import java.util.ArrayList;
import java.util.List; public class MainActivity extends AppCompatActivity { private TextView tvScrean;
private List<item> items=new ArrayList<item>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); tvScrean=(TextView)findViewById((R.id.tvScreen));
findViewById(R.id.btn0).setOnClickListener((View.OnClickListener) this);
findViewById(R.id.btn1).setOnClickListener((View.OnClickListener) this);
findViewById(R.id.btn2).setOnClickListener((View.OnClickListener) this);
findViewById(R.id.btn3).setOnClickListener((View.OnClickListener) this);
findViewById(R.id.btn4).setOnClickListener((View.OnClickListener) this);
findViewById(R.id.btn5).setOnClickListener((View.OnClickListener) this);
findViewById(R.id.btn6).setOnClickListener((View.OnClickListener) this);
findViewById(R.id.btn7).setOnClickListener((View.OnClickListener) this);
findViewById(R.id.btn8).setOnClickListener((View.OnClickListener) this);
findViewById(R.id.btn9).setOnClickListener((View.OnClickListener) this);
findViewById(R.id.btnAdd).setOnClickListener((View.OnClickListener) this);
findViewById(R.id.btnSub).setOnClickListener((View.OnClickListener) this);
findViewById(R.id.btnX).setOnClickListener((View.OnClickListener) this);
findViewById(R.id.btnDiv).setOnClickListener((View.OnClickListener) this);
findViewById(R.id.btnClear).setOnClickListener((View.OnClickListener) this);
findViewById(R.id.btnResult).setOnClickListener((View.OnClickListener) this); } public void onClick(View v){
switch (v.getId()){
case R.id.btn0:
tvScrean.append("0");
break;
case R.id.btn1:
tvScrean.append("1");
break;
case R.id.btn2:
tvScrean.append("2");
break;
case R.id.btn3:
tvScrean.append("3");
break;
case R.id.btn4:
tvScrean.append("4");
break;
case R.id.btn5:
tvScrean.append("5");
break;
case R.id.btn6:
tvScrean.append("6");
break;
case R.id.btn7:
tvScrean.append("7");
break;
case R.id.btn8:
tvScrean.append("8");
break;
case R.id.btn9:
tvScrean.append("9");
break;
case R.id.btnAdd:
items.add(new item(Double.parseDouble(tvScrean.getText().toString()),Types.Num));
check();
items.add(new item(0,Types.Add));
tvScrean.setText("");//清空文本
break;
case R.id.btnSub:
items.add(new item(Double.parseDouble(tvScrean.getText().toString()),Types.Num));
check();
items.add(new item(0,Types.Sub));
tvScrean.setText("");//清空文本
break;
case R.id.btnX:
items.add(new item(Double.parseDouble(tvScrean.getText().toString()),Types.Num));
check();
items.add(new item(0,Types.X));
tvScrean.setText("");//清空文本
break;
case R.id.btnDiv:
items.add(new item(Double.parseDouble(tvScrean.getText().toString()),Types.Num));
check();
items.add(new item(0,Types.Div));
tvScrean.setText("");//清空文本
break;
case R.id.btnClear:
tvScrean.setText("");
items.clear();//数组清空
break;
case R.id.btnResult:
items.add(new item(Double.parseDouble(tvScrean.getText().toString()),Types.Num));
check();
tvScrean.setText(items.get(0).value+"");
items.clear();//清空数组
break; }
}
public void check(){
if(items.size()>=3){ double a=items.get(0).value;
double b=items.get(2).value;
int opt=items.get(1).type; items.clear(); switch (opt){
case Types.Add:
items.add(new item(a+b,Types.Num));
break;
case Types.Sub:
items.add(new item(a-b,Types.Num));
break;
case Types.X:
items.add(new item(a*b,Types.Num));
break;
case Types.Div:
items.add(new item(a/b,Types.Num));
break;
}
}
}
}

item.java:

package com.example.counte;

public class item {

    public item(double value,int type){
this.value=value;
this.type=type;
}
public double value=0;
public int type=0;
}

Types.java:

package com.example.counte;

public class Types {
public static final int Add=1;
public static final int Sub=2;
public static final int X=3;
public static final int Div=4;
public static final int Num=5;
}

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

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. MongoDB_04_插入和查询

    案列需求: 存在文章评论的数据存放到MongoDB中,数据结构参考如下: 数据库:articledb 专栏文章评论 comment / / 字段名称 字段含义 字段类型 备注 _id ID Objec ...

  2. Java之集合

    前言: 在写程序当中,集合会经常使用,今天听了马老师的课,写一些自己的总结 正文: 集合最重要的就是一个图,一个类,三个知识点,六个接口 说到图就是上面的图,这个图可以帮我们理解这些接口的继承关系 1 ...

  3. 安装scrapy框架报错是常见问题

    还好,本人只碰到其中一个bug,以下是此次安装经验 环境 py3.4 windows7 64位 安装有VS2010 pip包管理(pycharm) 报错信息 安装lxml过程中报错:error: co ...

  4. Mysql自动备份与还原 转

    Mysql自动备份与还原 一.自动备份:将以下代码保存为*.bat批处理脚本,然后再添加Windows定时作业,如每天凌晨2点执行:set s=%date:~0,4%%date:~5,2%%date: ...

  5. R语言 线性回归分析实例 《回归分析与线性统计模型》page72

    y,X1,X2,X3 分别表示第 t 年各项税收收入(亿元),某国生产总值GDP(亿元),财政支出(亿元)和商品零售价格指数(%). (1) 建立线性模型: ① 自己编写函数: > librar ...

  6. 吴裕雄--天生自然C++语言学习笔记:C++ 标准库

    C++ 标准库可以分为两部分: 标准函数库: 这个库是由通用的.独立的.不属于任何类的函数组成的.函数库继承自 C 语言. 面向对象类库: 这个库是类及其相关函数的集合. C++ 标准库包含了所有的 ...

  7. Elasticsearch 删除文档

    章节 Elasticsearch 基本概念 Elasticsearch 安装 Elasticsearch 使用集群 Elasticsearch 健康检查 Elasticsearch 列出索引 Elas ...

  8. Day 17:缓冲输出字符流和用缓冲输入输出实现登录、装饰者设计模式

    输出字符流 Writer  所有输出字符流的基类,  抽象类. FileWriter 向文件输出字符数据的输出字符流. BufferedWriter 缓冲输出字符流        缓冲输出字符流作用: ...

  9. POJ-3984 迷宫问题(BFS找最短路径并保存)

    问题: 定义一个二维数组:  int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, ...

  10. cvthreshold 的运用

    什么是阈值? 最简单的图像分割的方法. 应用举例:从一副图像中利用阈值分割出我们需要的物体部分(当然这里的物体可以是一部分或者整体).这样的图像分割方法是基于图像中物体与背景之间的灰度差异,而且此分割 ...