Android 从小白到大拿之路——简单计算器最终的实现
来源:互联网 发布:java中定义数组的方法 编辑:程序博客网 时间:2024/04/27 17:41
直接上代码,虽然存在很多问题,但我相信我后面是能够回头fix的:
MainActivity.java
package com.example.calculator;import java.util.ArrayList;import java.util.List;import com.example.calculator.Item;import com.example.calculator.Types;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.TextView;public class MainActivity extends Activity implements OnClickListener{//pre, 声明!private TextView tvScreen;private List<Item> items = new ArrayList<Item>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //第一步,显示屏的声明并绑定 tvScreen = (TextView) findViewById(R.id.tvScreen); //第二步绑定设置好的每个按键 findViewById(R.id.btnNum0).setOnClickListener(this); findViewById(R.id.btnNum1).setOnClickListener(this); findViewById(R.id.btnNum2).setOnClickListener(this); findViewById(R.id.btnNum3).setOnClickListener(this); findViewById(R.id.btnNum4).setOnClickListener(this); findViewById(R.id.btnNum5).setOnClickListener(this); findViewById(R.id.btnNum6).setOnClickListener(this); findViewById(R.id.btnNum7).setOnClickListener(this); findViewById(R.id.btnNum8).setOnClickListener(this); findViewById(R.id.btnNum9).setOnClickListener(this); findViewById(R.id.btnClear).setOnClickListener(this); findViewById(R.id.btnDelete).setOnClickListener(this); findViewById(R.id.btnPlus).setOnClickListener(this); findViewById(R.id.btnSub).setOnClickListener(this); findViewById(R.id.btnMultiply).setOnClickListener(this); findViewById(R.id.btnDivide).setOnClickListener(this); findViewById(R.id.btnResult).setOnClickListener(this); findViewById(R.id.btnPoint).setOnClickListener(this); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } //第三步,在onClick中设置按钮按下的操作@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btnNum0:tvScreen.append("0");break;case R.id.btnNum1:tvScreen.append("1");break;case R.id.btnNum2:tvScreen.append("2");break;case R.id.btnNum3:tvScreen.append("3");break;case R.id.btnNum4:tvScreen.append("4");break;case R.id.btnNum5:tvScreen.append("5");break;case R.id.btnNum6:tvScreen.append("6");break;case R.id.btnNum7:tvScreen.append("7");break;case R.id.btnNum8:tvScreen.append("8");break;case R.id.btnNum9:tvScreen.append("9");break;case R.id.btnClear:tvScreen.setText("");items.clear();break;case R.id.btnDelete:break;case R.id.btnPlus:items.add(new Item(Double.parseDouble(tvScreen.getText().toString()), Types.NUM));//将显示屏的文本给数组checkAndCompute();//判断是否有3项,有的话进行加减乘除items.add(new Item(0, Types.ADD)); //等待用户添加操作符tvScreen.setText("");break;case R.id.btnSub:items.add(new Item(Double.parseDouble(tvScreen.getText().toString()), Types.NUM));checkAndCompute();items.add(new Item(0, Types.SUB));tvScreen.setText("");break;case R.id.btnMultiply:items.add(new Item(Double.parseDouble(tvScreen.getText().toString()), Types.NUM));checkAndCompute();items.add(new Item(0, Types.MUL));tvScreen.setText("");break;case R.id.btnDivide:items.add(new Item(Double.parseDouble(tvScreen.getText().toString()), Types.NUM));checkAndCompute();items.add(new Item(0, Types.DIV));tvScreen.setText("");break;case R.id.btnResult:items.add(new Item(Double.parseDouble(tvScreen.getText().toString()),Types.NUM));checkAndCompute();tvScreen.setText(items.get(0).value+"");items.clear();break;case R.id.btnPoint:break;}}public void checkAndCompute(){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.MUL: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.calculator;public class Item {public Item(double value, int type) {this.value = value;this.type = type;}public double value;public int type;}
Types.java
package com.example.calculator;
public class Types {
public static final int ADD = 1;
public static final int SUB = 2;
public static final int MUL = 3;
public static final int DIV = 4;
public static final int NUM = 5;
}
0 0
- Android 从小白到大拿之路——简单计算器最终的实现
- Android 从小白到大拿之路——计算器显示框的设置
- Android 从小白到大拿之路——计算器_修改按钮样式
- Android 从小白到大拿之路——数字时钟和虚拟时钟的实现
- Android 从小白到大拿之路——计算器的UI布局,虽然有些不完美
- Android 从小白到大拿之路——ListView 简单学习
- Android 从小白到大拿之路——登陆密码的明文显示
- Android 从小白到大拿之路——DrawerLayout抽屉的使用 (更新中)
- Android 从小白到大拿之路——Toast深入学习
- Android 从小白到大拿之路——应用程序自动转屏
- Android 从小白到大拿之路——Intent学习
- Android 从小白到大拿之路——Intent+Action启动网页
- 基于keras的深度学习基本概念讲解——深度学习之从小白到入门
- 基于keras的深度学习基本概念讲解——深度学习之从小白到入门
- Android 简单计算器的实现
- Android实现简单的计算器
- 简单android计算器的实现
- android 实现AIDL之简单计算器
- 算法提高 6-17复数四则运算 蓝桥杯
- CF_505C Mr. Kitayuta, the Treasure Hunter
- soj1002大数加法
- php MD5加密代码:
- 使用PHP模拟post提交数据
- Android 从小白到大拿之路——简单计算器最终的实现
- iOS-CoreData深入浅出_顺藤摸瓜
- 在Windows下安装rails
- 启动tomcat报host-manager does not exist or is not a readable directory异常
- 非农就业人口对美元和黄金的影响
- 【安卓】标题栏上的进度条
- [CH Round #61] 取数游戏
- Find Minimum in Rotated Sorted Array - Leetcode (Java)
- 黑马程序员————对C预处理指令的理解