- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
显式意图和隐式意图
在An droid应用中,主要由四大组件构成,这四种组件是独立的,但又可相互调用,它们之间协调工 作来组成一个完整的 An droid应用,这些组件之间的相互通信是由 In te nt即意图来完成的。下面我们来介
绍An droid下的两种意图一一显式意图和隐式意图。
Explicit Intents (显式意 图):通过指定 An droid系统中的某一个具体的组件(通过语句 setComp onen t(a ndroid.c onten t.Comp onen tName) 或者 setClass(a ndroid.c onten t.C on text, java .Ian g.Class)),来
开启另一个类并使之运行。通常显式意图不会包含其他的信息,只仅仅用来开启一个当前应用内部已经定 义的Activity,用于用户和应用之间的交互。
Implicit Intents (隐式意图):不指定某一个具体的组件;但是,包含足够的信息使系统可以决定当前 可用的组件中哪一个是执行该意图的最好选择。
为了更好的理解显示意图和隐式意图,我们可以通过以下 DEMO来体会这两种意图的区别。
03_另外一个应用程序”的按钮时,则打开另- 在“人品计算器”的清单文件中,我们已经声明1.隐式意图
03_另外一个应用程序”的按钮时,则打开另- 在“人品计算器”的清单文件中,我们已经声明
新建一个工程命名为:03_另外一个应用程序。点击“ 个应用“人品计算器”中的第二个页面即 ResultActivity。 了该ResultActivity所对应的Intent,代码如例1-1:
例1-1
vactivity
an droid:n amean droid:ic on
an droid:n ame
an droid:ic on
an droid:label
=com.itheima.rpcalc.ResultActivity
=@drawable/ic_two
=显示结果“
vinten t-filter
acti on an droid:n ame=data an droid:scheme=com.itheima.rpcalc.SHOWRESULTithiema /data/vcategory an droid:n ame=/i nten t-filteran droid.i nten t.category.DEFAULT// activity
acti on an droid:n ame=
data an droid:scheme=
com.itheima.rpcalc.SHOWRESULT
ithiema /data
/
vcategory an droid:n ame=
/i nten t-filter
an droid.i nten t.category.DEFAULT
/
/ activity
编写“ 03_另外一个应用程序”中的按钮点击事件,代码如例
例1-2
1-2 :
public
Intent intent =
void ope nO 2(View view) {
new Intent();
com.itheima.rpcalc.SHOWRESULT parse (ithiema:// 李四));
inten t.setActi on(
);
inten t.setData(Uri.
startActivity(i nten t);
}
运行程序,点击按钮,通过隐式意图打开另外一个应用程序的页面,效果如图
1-1所示:
点击按钮之后
点击按钮之后
图1-2所示
图1-2的效果说明:在一个应用中我们可以通过隐式意图打开其他应用程序的界面,如果一个应用的
界面需要被其他应用所访问,那么可以通过隐式的意图来实现这一需求。若我们修改了 ResultActivity的名
称,假设为ResultActivity124,此时我们仍然可以打开该 Activity所对应的页面,这是因为:修改该 Activity 的名称并不影响inten t-filter的配置。这也体现了 An droid程序设计的低耦合。
2.显示意图
编写“ 03_另外一个应用程序”中的按钮点击事件,代码如例 1-3 :
例1-3
public void ope nO 2(View view) {
Intent intent = new Inten t();
intent.setClassName( com.itheima.rpcalc , com.itheima.rpcalc.ResultActivity );
startActivity(i nten t);
}
例1-3调用Intent.setClassName()方法来开启另一个 Activi
文档评论(0)