intent小结2
来源:互联网 发布:方正卡通字体优化 编辑:程序博客网 时间:2024/05/21 17:15
Intent总结04 Data和Type属性
1 介绍
data和type的作用请参考“Intent总结01 Intent的结构”。
下面用代码对intent的data、type属性进行介绍。主要介绍的内容是,如何定义intent的data、type属性,并如何调用。
2 示例和说明
程序结构如下:
主界面如下:
我们在AndroidManifest中自定义一个类,并定义对应的data和type。如下:
- <activityandroid:nameactivityandroid:name=".DataTypeDestination">
- <intent-filter>
- <actionandroid:nameactionandroid:name="DataTypeReceiverAction" />
- <category android:name="android.intent.category.DEFAULT"/>
- <dataandroid:mimeTypedataandroid:mimeType="vnd.android.cursor.item/receiver001" />
- </intent-filter>
- </activity>
2.1 示例一
有了上述定义之后,我们可以通过如下方法来跳转到DataTypeDestination。
- Intent intent=new Intent();
- // 设置intent的type
- // 跳转目的地是“DataTypeDestination”,
- // 所以,这里type的参数"vnd.android.cursor.item/receiver001",必须AndroidManifest.xml中DataTypeDestination的mimeTyep一样。
- intent.setType("vnd.android.cursor.item/receiver001");
- // 设置intent的action。
- // 跳转目的地是“DataTypeDestination”,
- // 所以,这里action的参数"DataTypeReceiverAction",必须AndroidManifest.xml中DataTypeDestination的action一样。
- intent.setAction("DataTypeReceiverAction");
- startActivity(intent);
- // 退出当前应用程序
- finish();
上述代码对应“主界面的self按钮的响应程序”。点击self按钮,进入如下界面:
2.2 示例二
若单独只设置type,亦可找到匹配的类。如下:
- // 和 AndroidManifest.xml中DataTypeDestination的intent-filter 相比,
- // 仅仅只设置了type。但仍然能匹配到DataTypeDestination
- Intent intent=new Intent();
- intent.setType("vnd.android.cursor.item/receiver001");
- //intent.setAction("DataTypeReceiverAction");
- startActivity(intent);
- finish();
上述代码对应“主界面的Less按钮的响应程序”。点击Less按钮,进入如下界面:
3.3 示例三
但若多设置了data,则无法匹配到对应的类。如下:- // 和 AndroidManifest.xml中DataTypeDestination的intent-filter 相比,
- // 多设置了属性data。无法找到对应的activity!!!
- Intent intent=new Intent();
- intent.setAction("DataTypeReceiverAction");
- intent.setType("vnd.android.cursor.item/receiver001");
- Stringdata="content://contacts/people/1";
- Uri uri = Uri.parse(data);
- intent.setData(uri);
- startActivity(intent);
- finish();
上述代码对应“主界面的More按钮的响应程序”。点击More按钮,进入如下界面:
3.4 示例四
单独只设置了type仍然能匹配到对应的class,但若只设置了data,则无法匹配到对应的class。如下:- // 设置了action和data,能正确匹配。
- Stringdata="content://contacts/people/1";
- Uri uri = Uri.parse(data);
- Intent intent = new Intent();
- intent.setData(uri);
- intent.setAction(Intent.ACTION_VIEW);
- startActivity(intent);
- finish();
上述代码对应“主界面的DataAndAction按钮的响应程序”。在点击DataAndAction按钮之前,先进入Contacts(即联系人),并添加一个联系人(如添加联系人姓名:skywang,号码:13410177756)。然后,点击DataAndAction进入如下界面:
3.5 示例五
- // 相比上面同时设置了action和data,
- // 这里只单独设置了intent的data参数,无法正确匹配!
- Intent intent=new Intent();
- Stringdata="content://contacts/people/1";
- Uri uri = Uri.parse(data);
- intent.setData(uri);
- startActivity(intent);
- finish();
上述代码对应“主界面的DataOnly按钮的响应程序”。点击DataOnly按钮,直接退出应用程序。这是因为没有匹配到对应的Activity。
0 0
- intent小结2
- Intent小结
- Intent小结
- intent小结
- Intent 小结
- android之Intent小结
- intent小结03
- Intent使用小结
- Intent重点小结
- 【Android归纳】intent小结
- intent知识小结
- Android Intent 小结
- Intent.使用小结
- Android系统 广播Intent 小结
- Android Intent传递对象小结
- Intent的FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_REORDER_TO_FRONT小结
- android中的Intent的作用小结
- Android开发--Intent的用法小结
- 自旋锁和互斥锁区别
- 比较好点的博客
- OpenCV入门 - 提取SIFT特征向量
- 腾讯风铃联合DNSPod,打造企业一站式建站体验!
- leetcode(7)Reverse Integer
- intent小结2
- C/C++如何使用密码输入而不回显--getch()函数
- 策略模式
- Android ORMLite 框架的入门用法
- ubuntu14.04 nginx配置
- Java原型模式(Prototype模式)
- HDU_1232《畅通工程》
- 中序表达式转换为后序表达式
- rails 安装 ‘mysql2’ gem时的报错和解决方案