- 浏览: 148439 次
- 性别:
- 来自: 深圳
文章分类
最新评论
一、Component属性
为Intent中的一个属性。
ComponentName comp = new ComponentName(ComponentAttr.this , SecondActivity.class); Intent intent = new Intent(); //为Intent设置Component属性 intent.setComponent(comp); // Intent intent = new Intent(ComponentAttr.this // , SecondActivity.class); startActivity(intent);
//获取该Activity对应的Intent的Component属性
ComponentName comp = getIntent().getComponent(); //显示该ComponentName对象的包名、类名 show.setText("组件包名为:" + comp.getPackageName() + "\n组件类名为:" + comp.getClassName());
二、Action ,Category,intent-filter配置
有点像struct的Action 页面分离,通过xml配置
Intent intent = new Intent(); //为Intent设置Action属性(属性值就是一个普通字符串) intent.setAction(ActionAttr.CRAZYIT_ACTION); startActivity(intent);
<activity android:name=".SecondActivity"
android:label="@string/app_name"> <intent-filter> <!-- 指定该Activity能响应Action为指定字符串的Intent --> <action android:name="org.crazyit.intent.action.CRAZYIT_ACTION" /> <!-- 指定该Action能响应Action属性为helloWorld的Intent --> <action android:name="helloWorld" /> <!-- 指定该Action能响应Category属性为指定字符串的Intent --> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>
<activity android:name=".SecondActivity" android:label="@string/app_name"> <intent-filter> <!-- 指定该Activity能响应Action为指定字符串的Intent --> <action android:name="org.crazyit.intent.action.CRAZYIT_ACTION" /> <!-- 指定该Action能响应Action属性为helloWorld的Intent --> <action android:name="helloWorld" /> <!-- 指定该Action能响应Category属性为指定字符串的Intent --> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>
获得上一个的action
String action = getIntent().getAction(); //显示Action属性 show.setText("Action为:" + action);//值为org.crazyit.intent.action.CRAZYIT_ACTION
category的用法 运行指定的action和包含此category的Activity
Intent intent = new Intent(); //设置Action属性 intent.setAction(ActionCateAttr.CRAZYIT_ACTION); //添加Category属性 intent.addCategory(ActionCateAttr.CRAZYIT_CATEGORY); startActivity(intent);
三、指定Action 、Category调用系统的Activity
Intent 和Category含有大量的常量
使用系统的常量action即可调用系统的Activity 获取联系人,注意需要配置访问联系人的权限
package org.crazyit.action; import android.app.Activity; import android.content.Intent; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.provider.ContactsContract; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; /** * Description: <br/> * site: <a href="http://www.crazyit.org">crazyit.org</a> <br/> * Copyright (C), 2001-2012, Yeeku.H.Lee <br/> * This program is protected by copyright laws. <br/> * Program Name: <br/> * Date: * * @author Yeeku.H.Lee kongyeeku@163.com * @version 1.0 */ public class SysAction extends Activity { final int PICK_CONTACT = 0; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button bn = (Button) findViewById(R.id.bn); // 为bn按钮绑定事件监听器 bn.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // 创建Intent Intent intent = new Intent(); //设置Intent的Action属性 intent.setAction(Intent.ACTION_GET_CONTENT); //设置Intent的Type属性 intent.setType("vnd.android.cursor.item/phone"); // 启动Activity,并希望获取该Activity的结果 startActivityForResult(intent, PICK_CONTACT); } }); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case (PICK_CONTACT): if (resultCode == Activity.RESULT_OK) { // 获取返回的数据 Uri contactData = data.getData(); // 查询联系人信息 Cursor cursor = managedQuery(contactData, null , null, null, null); // 如果查询到指定的联系人 if (cursor.moveToFirst()) { String contactId = cursor.getString(cursor .getColumnIndex(ContactsContract.Contacts._ID)); // 获取联系人的名字 String name = cursor.getString(cursor .getColumnIndexOrThrow( ContactsContract.Contacts.DISPLAY_NAME)); String phoneNumber = "此联系人暂未输入电话号码"; System.out.println("-------------" + contactId); //根据联系人查询该联系人的详细信息 Cursor phones = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null); System.out.println("===================" + phones); if (phones.moveToFirst()) { //取出电话号码 phoneNumber = phones .getString(phones .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); } // 关闭游标 phones.close(); EditText show = (EditText) findViewById(R.id.show); //显示联系人的名称 show.setText(name); EditText phone = (EditText) findViewById(R.id.phone); //显示联系人的电话号码 phone.setText(phoneNumber); } // 关闭游标 cursor.close(); } break; } } }
1、 返回桌面
//创建Intent对象 Intent intent = new Intent(); //为Intent设置Action、Category属性 intent.setAction(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME);
2、Data的用法
Data分为二个部分 类型+数据
package org.crazyit.intent; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; /** * Description: * <br/>site: <a href="http://www.crazyit.org">crazyit.org</a> * <br/>Copyright (C), 2001-2012, Yeeku.H.Lee * <br/>This program is protected by copyright laws. * <br/>Program Name: * <br/>Date: * @author Yeeku.H.Lee kongyeeku@163.com * @version 1.0 */ public class DataAttr extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button bn = (Button)findViewById(R.id.bn); //为bn按钮添加一个监听器 bn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //创建Intent Intent intent = new Intent(); String data = "http://www.crazyit.org"; //根据指定字符串解析出Uri对象 Uri uri = Uri.parse(data); //为Intent设置Action属性 intent.setAction(Intent.ACTION_VIEW); //设置Data属性 intent.setData(uri); startActivity(intent); } }); Button edit = (Button)findViewById(R.id.edit); //为edit按钮添加一个监听器 edit.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //创建Intent Intent intent = new Intent(); //为Intent设置Action属性(动作为:编辑) intent.setAction(Intent.ACTION_EDIT); String data = "content://com.android.contacts/contacts/1"; //根据指定字符串解析出Uri对象 Uri uri = Uri.parse(data); //设置Data属性 intent.setData(uri); startActivity(intent); } }); Button call = (Button)findViewById(R.id.call); //为edit按钮添加一个监听器 call.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //创建Intent Intent intent = new Intent(); //为Intent设置Action属性(动作为:拨号) intent.setAction(Intent.ACTION_DIAL); String data = "tel:13800138000"; //根据指定字符串解析出Uri对象 Uri uri = Uri.parse(data); //设置Data属性 intent.setData(uri); startActivity(intent); } }); } }
3、Extra属性
多个action之间进行数据交换,Bundle 像一个Map。。
发表评论
-
使用SlidingMenu开发demo
2013-05-06 16:29 1859源码: http://download.csdn.net ... -
Fragment学习笔记(待更新)
2013-05-06 11:30 1024简介: http://www.360doc.com/co ... -
下拉显示全部图片
2013-05-06 11:20 1281android:layout_height=" ... -
高仿微信学习
2013-05-03 16:28 19171、登录界面 button中设置该属性,点击的时 ... -
简单从网络上获取JSON数据解析
2013-05-03 12:05 10790package com.jiangqq.util; i ... -
ExpandableListActivity的使用。
2013-05-02 16:10 993其实也就是自定义了一个Adapter,也可以使用Simple ... -
侧边字母索引栏的使用
2013-04-13 10:42 1475自定义一个view 绘制 package ... -
(转)退出所有activity
2013-04-13 10:09 3195SysApplication这个类复制到工程里面,然后在每个 ... -
(转)在任一View上增加数字文字
2013-04-11 14:28 1269自定义一个TextView package com.jac ... -
(转)onInterceptTouchEvent和onTouchEvent调用时序
2013-04-10 16:03 1433onInterceptTouchEvent和onTouchE ... -
(转)Android中自定义View的MeasureSpec使用
2013-04-06 16:49 11631.如果没有再配置文件中精确指定多大,而是由子VIEW的大 ... -
仿IQIYI界面
2013-04-06 16:33 723底部菜单 采用5个不同的Linerlayout,每 ... -
PerferenceActivity学习
2013-03-30 15:05 1031SharedPreferences 能存储一下类型数据 ... -
手机QQ UI界面分析
2013-03-30 14:41 1680一、设置界面。 采用PerferenceActivity ... -
(转)android基本控件使用大汇集
2013-03-29 17:12 704原文: http://code.eoe.cn/335 ... -
内存泄露,优化收集
2013-03-29 16:44 762Android杂谈--内存泄露(1)--contentV ... -
手势缩放字体大小
2013-03-29 15:38 1817使用装饰者模式,讲一个普通的TextView 包装成一个可放 ... -
卸载安装应用,在线升级
2013-03-28 15:27 1151安装程序的方法: 1 ... -
Anim的使用与桌面快捷方式的生成
2013-03-28 14:31 799package org.crazyit.desktop; ... -
Android中Activity启动模式详解
2013-03-24 22:58 757参考http://www.cnblogs.com/fanch ...
相关推荐
在Android应用开发中,Intent和IntentFilter是两个至关重要的组件,它们构成了Android系统服务和组件之间通信的核心机制。本文将深入探讨Intent与IntentFilter的工作原理、使用方式以及它们在实际应用中的重要性。 ...
使用 Intent 和 IntentFilter,Android 应用能够灵活地实现组件间的通信和系统服务的调用。不过,为了安全起见,应谨慎使用隐式 Intent 打开 Service,因为这可能导致隐私泄露或滥用。从 Android 5.0 开始,隐式 ...
第五章使用intent和intentFilter进行通信 第六章android应用的资源 第七章图形与图像处理 第八章android的数据存储和IO 第九章使用contentProvider实现数据共享 第十章service与broadcastReceiver 第十一章多媒体...
第五章使用intent和intentFilter进行通信 第六章android应用的资源 第七章图形与图像处理 第八章android的数据存储和IO 第九章使用contentProvider实现数据共享 第十章service与broadcastReceiver 第十一章多媒体...
第五章使用intent和intentFilter进行通信 第六章android应用的资源 第七章图形与图像处理 第八章android的数据存储和IO 第九章使用contentProvider实现数据共享 第十章service与broadcastReceiver 第十一章多媒体...
第5章、使用Intent和IntentFilter进行通信 第6章、Android应用的资源 第7章、图形与图像处理 第8章、Android的数据存储和IO 第9章、使用ContentProvider实现数据共享 第10章、Service与BroadcastReceiver 第11章、...
第5章 使用Intent和IntentFilter进行通信 第6章 Android应用的资源 第7章 图形与图像处理 第8章 Android的数据存储和IO 第9章 使用ContentProvider实现数据共享 第10章 Service与Broadcast Receiver 第11章 多媒体...
第5章 使用Intent和IntentFilter进行通信 第6章 Android应用的资源 第7章 图形与图像处理 第8章 Android数据存储与IO 第9章 使用ContentProvider实现数据共享 第10章 Service与BroadcastReceiver 第11章 ...
第5章 使用Intent和IntentFilter进行通信 第6章 Android应用的资源 第7章 图形与图像处理 第8章 Android数据存储与IO 第9章 使用ContentProvider实现数据共享 第10章 Service与BroadcastReceiver 第11章 ...
使用IntentFilter时要注意,只有隐式Intent才会进行Intent解析和过滤。显式Intent会直接启动指定的组件,跳过了IntentFilter的匹配过程。因此,为了实现跨应用的组件复用,开发者需要正确地定义IntentFilter,使其...
在Android开发中,Intent和IntentFilter是实现组件间通信的关键机制。Intent作为消息载体,能够连接不同的应用组件,包括Activity、Service、BroadcastReceiver等,使得它们可以互相传递数据和触发操作。...
第5章、使用Intent和IntentFilter进行通信 5.1、Intent对象详解: 5.2、Intent的属性及intent-filter配置:Component属性; Action、Category属性与intent-filter配置; Data、Type属性与intent-filter配置; Extra...
第5章、使用Intent和IntentFilter进行通信 5.1、Intent对象详解: 5.2、Intent的属性及intent-filter配置:Component属性; Action、Category属性与intent-filter配置; Data、Type属性与intent-filter配置; ...
疯狂Android讲义第二版 李刚著 电子工业出版社 2013年3月第1版 第1章 Android应用与开发...第5章 使用Intent和IntentFilter进行通信 第6章 Android应用的资源 第7章 图形与图像处理 第8章 Android数据存储与IO
Activity负责展示用户界面并处理用户交互,而Intent则协调这些界面之间的通信和数据流动。理解和熟练掌握这两者的关系和用法,对于构建功能丰富的Android应用至关重要。通过不断的实践和学习,开发者可以灵活地利用...
在Android开发中,Intent是一种非常重要的组件...总结,Intent在Android开发中起着桥梁的作用,连接起各个组件,使得组件间能够高效地通信和协作。理解并熟练掌握Intent的使用,是提升Android应用开发能力的关键步骤。
本篇文章将详细解析“Intent系统调用示例”,并结合提供的IntentDemo项目进行深入探讨。 1. **Intent的基本概念** Intent是一个消息对象,它封装了应用程序想要执行的操作以及操作所需要的数据。在Android中,...