小猪的Android入门之路 Day 6

小猪的Android入门之路 Day 6

Android应用核心:Intent(意图)

                                                        -----转载请注明出处:coder-pig


本节引言:


通过前面的学习中,我们都知道可以调用startActivity(intent)或者startActivityForResult(intent)

来启动一个新的Activity了,他们的参数都是Intent类型的实例,那么这个Intent是什么东西呢?

有什么用?还有一个问题,相信细心的朋友都发现AndroidManifest.xml的activity标签中有一个

intent-filter的东东,这个又是什么呢?好了,带着这些因为,我们来一点点地解析android应用的核心

Intent(意图)!



本节学习路线图:

小猪的Android入门之路 Day 6_第1张图片


学习路线图解析:

①弄懂什么叫Intent,他是拿来干嘛的?

②区分显式Intent与隐式Intent,启动一个Activity的不同方式!

③了解Intent的七个属性,Flags不理解可以暂时放一放

④会使用显示Intent和隐式Intent去激活一个组件的流程,以及隐式Intent的预定义动作与自定义动作!



正文:


Intent的相关概念:


小猪的Android入门之路 Day 6_第2张图片



显式Intent与隐式Intent的区别:


小猪的Android入门之路 Day 6_第3张图片



Intent的七个属性:

ComponentName(组件名称):

小猪的Android入门之路 Day 6_第4张图片


Action(动作)与Category(种类):

小猪的Android入门之路 Day 6_第5张图片



DATA(数据)与Type(MIME类型)

小猪的Android入门之路 Day 6_第6张图片



Extras(额外)

小猪的Android入门之路 Day 6_第7张图片



Flags(标记)

小猪的Android入门之路 Day 6_第8张图片



Intent的使用:


显式Intent:

这个是我们以前用的最多的一种方式,通常启动第二个Activity,我们只需要填入要启动的

Activity的全限定类名,在调用startActivity( )或者startActivityForResult()即可


代码示例:点击按钮返回HOME界面

效果图:

小猪的Android入门之路 Day 6_第9张图片


核心代码:

Intent it = new Intent();
it.setAction(Intent.ACTION_MAIN);
it.addCategory(Intent.CATEGORY_HOME);
startActivity(it);



代码示例二:点击按钮打开百度:

效果图如下:

小猪的Android入门之路 Day 6_第10张图片


核心代码:

Intent it = new Intent();
it.setAction(Intent.ACTION_VIEW);
it.setData(Uri.parse("http://www.baidu.com"));
startActivity(it);








隐式Intent:


小猪的Android入门之路 Day 6_第11张图片




预定义动作的隐式Intent:

代码示例:点击按钮后,所有Action为VIEW的Activity被筛选出来,由用户进一步选择:

运行效果图:
小猪的Android入门之路 Day 6_第12张图片


核心代码流程:

建立第二个Activity的布局,与对应的Activity,在第一个Activity的按钮点击事件中添加一下代码:

Intent it = new Intent();
it.setAction(Intent.ACTION_VIEW);
startActivity(it);

最后在Intent中添加以下代码:

                     android:label="第二个Activity">
           
               
               
           
          
       

接着就可以了,代码很简单!




自定义动作的隐式Intent

代码示例:使用自定义的Action与category来激活另一个Activity

运行效果图:
小猪的Android入门之路 Day 6_第13张图片


这里要注意虽然我们自定义了一个category,但是还是要把这个默认的加上,不然会报错的:

在AndroidManifest.xml的第二个activity标签中加入:






相关代码下载:

返回Home界面:代码下载

打开浏览器:代码下载

包含预定义动作的隐式Intent:代码下载

包含自定义动作的隐式Intent:代码下载




ps:对于系统预定义的一些Action与Category,大家可以按需要自己百度,后续有时间会整理下,写一篇博文!

当然你也可以查看下官方的文档,在sdk-->docs-->reference-->android--->content--->Intent.html中!

你可能感兴趣的:(小猪的Android入门之路 Day 6)