资源描述:
《android学习文档4-android四大天王之intent》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、4、Android四大天王之IntentIntent作为Android中的“数据搬运工”,在系统中扮演的是一种类似MFC的“消息响应”的角色,但是他的使用比较方便,没有MFC里边那么繁琐。这章我们就先介绍一下Intent比较简单的应用。4.1Intent的组成:Intent作为Android信息传递的王牌工具,它有其强大的功能,一个Intent包含有一组数据:
2、-Componentname:需要启动的组件或者服务的“标识”
3、-Action:启动的组件或服务所要做的动作。文档中有Action常量的介绍。
4、-Data:数据
5、-Ca
6、tegory:以后再讲,需要其他知识。
7、-Extras:类似“键值对”的数据链。
8、-Flags:同Caregory。4.2在一个Activity中使用Intent启动另一个ActivityAndroid手机用户有很多这样的经历:当按某个按钮以后,会弹出一个新的Activity,这个Activity可能全屏的,也可能是只占屏幕的一部分,不管怎么说,这个新的Activity都是响应之前的按键动作出现的,那么它就一定有他的作用,或是处理数据,或是显示信息。不管怎么说,总会用到上一个Activity所传递过来的信息,这就是Intent
9、在这里的作用。下面拿一个简单的计算机程序作为实例:实例要求:建立工程IntentDemo01,使用RelativeLayout显示如下界面,并为两个按钮设置功能:
10、-“重置”按钮将两个EditText中的内容清空
11、-“计算”按钮显示新的Activity并在里边用TextView显示计算结果。第一步:利用RelateLayout进行上边实例的布局(因为RelateLayout刚讲过但是例子不多,所以这里我把布局文件的代码贴出来,以后没有特殊情况,布局文件不再贴出来了~)第二步:为“重置”按钮添加监听类。按钮的监听类也用过很多次了
12、,这里也直接贴出代码:上边红框里边的那几句是为了使EditText只接收数字型的输入。注释掉的部分也是设置EditText输入格式的,但是大家可以试试与现在用的有什么不同。代码效果我就不贴了。第三步:新建一个Activity。在上一章的3.5.2一节中已经介绍了如何建立一个Activity,但是因为实例较少,估计也不熟悉,这里就在联系一下:
13、-首先是建立布局文件
14、-然后写Activity的类,并与布局文件关联起来。
15、-在AndroidManifest文件中注册这个新的Activity只有上边三步,其实挺简单的。因为显示结果用的
16、Activity很简单,我就不多介绍了,直接上代码:首先是布局文件:接着是Activity类最后是AndroidManifest文件中的注册:第四步:为“计算”按钮添加监听类,该监听类打开新的Activity同时将两个EditText的输入值传递,如果有EditText中没有输入数据,则用Toast控件报错。监听类也都挺熟悉的了,那么这步的重点就是如何打开新的Activity:
17、-声明一个新的Intent类,这个类就像一个容器一样,可以“放入”很多“键值对”,当这个Intent被传递给下一个Activity的时候,里边保存的“
18、键值对”也就被传递了。篮筐里的代码作用是把EditText得到的Strings类型的变量转换为Int型。红框里是Intent的两个函数:
19、-putExtra(String,T):将类型T的数据一String的名字存入Intent中(如果不理解什么意思也没关系,一会提取数据的时候就知道了)。
20、-setClass(Activity,Class):设置了从哪个Activity对象,启动到哪个类的Activity。好抽象啊,拿这个例子来说就是,从这个Activity本身,也就是IntentDemo01Activity.this本身(注
21、意this不能少,他表示了这个参数是一个对象而不是一个类);第二个参数要启动到的Activity的类,必须是一个类,在这里也就是ResultActivity.class(同理,.class也不能少)。第五步:在新启动的Activity中接收Intent并进行计算。启动端已经把数据“放入”Intent类的一个实例中了,那么被启动端就应该接收这个Intent,怎么接受呢?代码如下:这里用到了两个Intent类相关的函数:
22、-getIntent():得到启动这个Activity实例的地方传递过来的Intent。
23、-getIntExt
24、ra(String,int):还记得启动之前在Intent放了两个变量名为”adder1”和”adder2”的int型的变量么?这里就是用来取得这两个值的。OK,取出来、算出来、显示出来,一切就绪以后运行看下结果:加入输入不完整输入5和4之后的结果这个挺简单吧,下面我们说一个