当前位置:操作系统 > 安卓/Android >>

Android学习笔记1---简单计算器

 实验题目:
          在Android模拟器里,完成一个简单的计算机功能。
实验目的:
          了解Android的常见控件“文本框、按钮”等的使用。
 
第一步、新建工程

 


选择SDK的版本,例如我们这里选择2.3.3

 

 
至此工程新建完毕。

 
Android 工程已经默认创建了一个  main.xml的界面
双击打开该界面。调整界面的屏幕大小。

 
Android界面的默认布局是“流式布局”,对于做惯了windows开发的人来说,可能还有点不适应。
因此首先将界面布局调整为“绝对布局(就是用x,y来控制位置)”

 
选择AbsoluteLayout布局

 在界面上添加如下控件。

依次给按钮控件设置ID

 
按钮ID,从btn0开始,
0-----btn0
1-----btn1
2-----btn2
.....
9-----btn9
0---btn10
(+)----btn11
(-)----btn12
(*)----btn13
(/)----btn14
 
完整的布局如下:

一个简单计算器的外观完成了。 
现在来添加代码。

Anroid的界面是xml文件构成,而与代码配套的代码文件是放在src下面的。例如jsqActivity.java

打开 jsqActivity.java 这个文件,我们可以看到初始代码。
注意:在这里已经找不到main函数了。
程序的启动函数是从Activity开始的。
 
onCreate() 在 Activity 构造时执行,我们可以在这个地方加入我们的按钮事件代码。
Android的事件要手工去挂接,这一点上就没有VisualStudi 方便多了。
挂接事件要经理2个步骤:
(1)捕获该控件

 
Button btn1=(Button)this.findViewByID(id);
通过findViewByID插在到该控件的id,这也就是为什么我们在进行界面布局的时候要指定控件ID 的原因。
通过控件的ID将控件和对象进行关联,然后就可以通过对象来操作该控件了。
提示:
     常用的对象有Button(按钮)、TextView(文本框)等等
   
(2)绑定按钮事件

这里的代码和java标准代码是一致的,也是采用匿名事件代码编写。
通过给Button对象,设置一个监听函数,有监听函数去处理这个事件,并调用相应的方法。
有些时候为了方便书写,还可以这么写

  2个红框里的代码效果完全一致。
 
如果熟练了,推荐使用下面的办法绑定事件,可以少敲些代码,少定义些对象。

 
那么事件绑定完了,就要实现具体功能,例如,点击按钮1,就要把“1”添加到文本款

 
其它按钮如法炮制:
例如按钮2

 
数字按钮就这么做完掉。0 ~ 9 类似

 
现在这个界面已经可以实现0 ~ 9的按键输入了。
那么现在来实现“+” 加法功能。
分析:
       加法功能,实际上在代码里要完成2件事情
          (1)把txt文本框的内容保存
         (2) 清空txt文本框
         (3)在代码里的某一个位置(int Flag)保存现在的操作是加法

基本的思路: 加减乘除和“等号键”配合使用
现在加上,减法,乘法

 
   除法类似,留给你自己实现了。呵呵
  那么“等号”按钮的代码如下:

 
 
至此,一个简单的计算器完成了。我们现在来测试一下看看。
输入 123+ 456
结果应该显示 579

 接着计算 579  - 100
结果显示 479

 
一个简单计算器的功能基本实现了。
 
我们现在进行总结:
 
通过本实验
     (1)应该掌握了“按钮”事件的绑定,以及按钮事件的编写。
     (2)了解Android应用程序的启动创建、运行启动流程
                程序首先从 OnCreate 进行创建构造
     (3)数据类型的转换
              例如String 转float
                      
                      Float 转String
             注意:文本框的内容不能直接给String,要转换
                 因为   getText() 返回的并不是String

 
          (4)注意变量的【作用域】

事件里的匿名函数是不能访问err_txt 这个对象的,它只能访问全局的txt变量。这一点,要注意。
 


摘自 张建波专栏
补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,