A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张伟南 中级黑马   /  2016-11-13 23:29  /  1146 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

公共构造函数:
1Intent() 空构造函数
2Intent(Intent o) 拷贝构造函数
3Intent(String action) 指定action类型的构造函数
4Intent(String action, Uri uri) 指定Action类型和Uri的构造函数,URI主要是结合程序之间的数据共享ContentProvider
5Intent(Context packageContext, Class<?> cls) 传入组件的构造函数,也就是上文提到的
6Intent(String action, Uri uri, Context packageContext, Class<?> cls) 前两种结合体
Intent有六种构造函数,345是最常用的,并不是其他没用!
Intent(String action, Uri uri)  action就是对应在AndroidMainfest.xml中的action节点的name属性值。在Intent类中定义了很多的ActionCategory常量。
示例代码二:
   1: Intent intent = new Intent(Intent.ACTION_EDIT, null);
   2: startActivity(intent);
示例代码二是用了第四种构造函数,只是uri参数为null。执行此代码的时候,系统就会在程序主配置文件AndroidMainfest.xml中寻找
<action android:name="android.intent.action.EDIT" />对应的Activity,如果对应为多个activity具有<action android:name="android.intent.action.EDIT" />此时就会弹出一个dailog选择Activity,如下图:
file:///C:\Users\ZHANGW~1\AppData\Local\Temp\ksohtml\wps323C.tmp.jpg 如果是用示例代码一那种方式进行发送则不会有这种情况。
三、利用IntentActivity之间传递数据
Main中执行如下代码:
   1: Bundle bundle = new Bundle();
   2: bundle.putStringArray("NAMEARR", nameArr);
   3: Intent intent = new Intent(Main.this, CountList.class);
   4: intent.putExtras(bundle);
   5: startActivity(intent);
CountList中,代码如下:
   1: Bundle bundle = this.getIntent().getExtras();
   2: String[] arrName = bundle.getStringArray("NAMEARR");
以上代码就实现了Activity之间的数据传递!
file:///C:\Users\ZHANGW~1\AppData\Local\Temp\ksohtml\wps323D.tmp.png

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马