实验题目:

在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变量。 这一点,要注意。



更多相关文章

  1. Android(安卓)ActionBar的源代码分析(三)
  2. 用C#开发了一个Android(安卓)浏览器APP
  3. Android(安卓)UI学习1:控件和基本事件的响应
  4. Android下基于XML的 Graphics
  5. Android代码开发性能指引
  6. Android日志系统Logcat源代码简要分析
  7. Android状态check、focused、pressed、selected小结
  8. Android项目源码混淆问题解决方法
  9. android注解使用详解(图文)

随机推荐

  1. PHP提取多维数组指定一列的方法大全
  2. php访问url的四种方式
  3. php自动生成sitemap
  4. php 数组排序函数
  5. PHP+Swoole的闭包写法
  6. php统计2个数据中同时出现的次数最多的单
  7. var_export与var_dump的不同
  8. php利用mkdir()函数创建多级目录
  9. php中字符串和整数比较
  10. PHP最强大的随机字符串生成函数