Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2213868
  • 博文数量: 436
  • 博客积分: 9833
  • 博客等级: 中将
  • 技术积分: 5558
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-29 10:27
文章存档

2013年(47)

2012年(79)

2011年(192)

2010年(118)

分类: LINUX

2011-03-30 22:12:51

第四次报告

研究题目:Android手机游戏开发

小组成员:李安 李想

本周计划:

 完成手机页面的转换、传输、实现一个测试身高体重的小实例

实验内容:

一、 setContentView的应用——实现手机页面转换

在网页中,实现两个网页的转换,利用超链接(HyperLink)就可以实现,但是在手机的世界里,要想实现页面转换,就需要改变ActivityLayout1Layout2

我们通过在Layout1Layout2中各创建一个按钮,单击后可以切换到彼此界面。

运行结果:

  

主程序

关于程序说明:

这个主程序中,预加载的Layoutmain.xml,屏幕上显示的是黑色背景的“This is Layout 1!!”,在第一个Layout上的按钮被点击的同时,改变ActivityLayoutmylayout.xml,屏幕上显示变为白色背景的 “This is Layout 2!!”,并利用Button点击时,调用方法的不同做两个Layout间的切换。

为了凸显Layout间切换的效果,特别改变两个Layout的背景色及输出文字。在main.xml中定义其背景色为黑色,输出文字为“This is Layout 1!!”

mylayout.xml中定义其背景色为白色,输出文字为“This is Layout 2!!”

拓展分析:

所有的Activity(包括这个Page)都必须实例Activity的抽像方法OnCreate();因为Activity是抽象类,而onCreate又是抽像方法,所以必须实现,填完整这个方法,在里面写点东西,   一般都是生成一些,按钮,菜单,图片,文字等进行界面的初始化。

etContentView(R.layout.main): R.layout.main是个布局文件即控件都是如何摆放如何显示的,setContentView就是设置一个Activity的显示界面,这句话就是设置这个这句话所再的Activity采用R.layout下的main布局文件进行布局

这个程序其实跟上周我们做的Button事件处理有很大关联。在那个范例中只有一个按钮,但其实不仅Activity里可以布局数个按钮(即Layout里多配置一些按钮对象也可以布局几个Layout来实现更多操作。

不足:

运用切换Layout的方式仅实现了背景、颜色及文字内容的转换。并不能实现Activity的置换。

二.不同Activity之间的数据传递

首先要学会如何在Activity中调用另一个Activity,而需要在额外调用一个Activity的同时传递数据,需要利用android.os.Bundle对象封装数据的能力,将欲传递的数据或参数,通过Bundle来传递不同Intent之间的数据

例子:通过输入性别身高,取得Button对象,将要传递的数据发送,在另一方接收。

原理:Activity1中收集User输入的数据,在离开Activity1的同时,将User选择的结果传递至下一个Activity2

运行结果:

    

算法:

主程序:

Activity1:

在第一个Activity1主程序中,定义了性别选项的RadioGroup以及输入身高的“EditText”,并运用IntentBundle对象,在调用Activity2EX03_10_1)时,同时将数据传入。

要如何解决Activity控制权的移交可在主程序里使用startActivity() 这个方法来调用另一个Activity当中的关键是 Intent这个特有的对象,它会在主Activity当中,告诉程序自己是什么,并想要前往哪里,这样能实现两个Activity的转换。

Activity2:

Activity1是以 Bundle封装对象,在Activity2亦是以Bundle的方式解开封装的数据;程序中以getIntent().getExtras() 方法取得随着Bundle对象传递过来的性别与身高,经过计算之后,显示在屏幕上。

本周小结:

有关手机页面的转换,掌握是很必要的,因为每一次刷新页面、每前进一步都需要这个操作。在读相关程序的时候不太理解Activity类,因为看到很多子类都是继承它的。后来查阅了一些关于Activity的资料。知道了每个Activity都需要一个类来继承。看到论坛里的解答有一个很生动,说可以把Activity理解成一个应用场景,如果你想像成web网页,那么它就是一个页面。多个activity之间可以跳转,就像网页之间相互跳转一样。

还有就是关于不同Activity之间的数据传递。掌握了它就能激活程序按照相应的算法运行。在我们做的这个例子中,只是实现了字符串的传入,其实Bundle对象针对不同的数据类型提供了许多的方法。并且读数据的时候也有相应的Bundle.getString(stringName)Bundle.getDouble(doubleName)等方法。

   我们可以基本跟着书上的例子运行下来,但有一些程序实现的语句不能完全理解,有的小的拓展就只能照葫芦画瓢,不能理解其真正的实质,我想我们还需要多多的去读程序,来一点点的理解每一个函数的意义。

下周计划:我们要更深入的去了解交互式通信服务与手机控制,比如拨打电话这一基本功能。

参考资料:

Android activity

http://blog.csdn.net/chenzhp/archive/2009/10/25/4726910.aspx

2.CSDN社区-移动平台-Android

3.Android setContentView的应用

4. OnClickListener接口简介

5. Android基础教程()------- 参数的传递(Bundle

 http://archive.cnblogs.com/a/1959784/

阅读(924) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~