项目实战:实现一个简单计算器

- 界面设计 
(1)拖进一个大文本,整屏,设计各个数字及运算,用Table来存放。
android:layout_width="fill_parent" android:layout_height="wrap_content">         android:id="@+id/tableRow1" android:layout_width="fill_parent" android:layout_height="wrap_content">                           (2)实现算法,一个数字一个操作符号,执行第二个操作符号时前面就运算,有三项就执行运算,用数组记录,创建种类类: publicclass Types {   publicstaticfinalintADD = 1;   publicstaticfinalintSUB = 2;   publicstaticfinalintX = 3;   publicstaticfinalintDIV = 4;   publicstaticfinalintNUM = 5; } (3)存入数字或符号,项类 publicclass Item {   public Item(double value,int type){      this.value=value;      this.type=type;   }   publicdoublevalue=0;   publicinttype=0; } (4)定义数组,存放内容为Item private List (5) 如果输入数字,直接添加: publicvoid onClick(View v) {      switch (v.getId()) {      case R.id.btn0:          tvScreen.append("0");          break;      case R.id.btn1:          tvScreen.append("1");          break;      case R.id.btn2:          tvScreen.append("2");          break; 。。。。。 (6)实现相加 case R.id.btnAdd:          items.add(new Item(Double.parseDouble(tvScreen.getText().toString()),Types.NUM)); 判断是否有三项了,写成一个方法:          checkAndCompute(); 实现: publicvoid 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.X:             items.add(new Item(a*b, Types.NUM));             break;          case Types.DIV:             items.add(new Item(a/b, Types.NUM));             break;          }      }   } (7)结构保存,并且屏幕清空          items.add(new Item(0, Types.ADD));          tvScreen.setText("");          break; (8)实现减等其它运算  case R.id.btnSub:          items.add(new Item(Double.parseDouble(tvScreen.getText().toString()),InputTypes.NUM));          checkAndCompute();          items.add(new Item(0, InputTypes.SUB));          tvScreen.setText("");          break; (9)实现等于号等运算 case R.id.btnResult:          items.add(new Item(Double.parseDouble(tvScreen.getText().toString()),InputTypes.NUM));          checkAndCompute();          tvScreen.setText(items.get(0).value+"");          items.clear();          break; 另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
                                                网站标题:10天学通Android开发(5)-项目实战:计算器-创新互联                                                
                                                链接分享:http://www.scyingshan.cn/article/jhigj.html
                                            

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 