Android学习笔记——Intent
来源:互联网 发布:网络购物市场交易规模 编辑:程序博客网 时间:2024/06/05 05:21
Intent中文翻译为“意图”,它是Android程序中各个组件进行交互的一种重要方式,它不仅可以指定当前组件要执行的动作,还可以在不同组件之间进行数据传递。Intent一般用于启动Activity、启动服务、发送广播等,承担了Android应用程序三大核心组件相互间的通信功能。
Intent启动Activity的方法有:
startActivity(Intent intent) startActivityForResult(Intent intent,int code)
1.Android中Intent寻找目标组件的两种方式
显式意图:即在通过Intent启动Activity时,需明确指定激活组件的名称。如果需要在本应用中启动其他的Activity时,可以使用显式意图来启动Activity。
Intent intent = new Intent(this, Activity02.class); startActivity(intent);
显式意图还可以根据目标组件的包名、全路径名来指定开启组
intent.setClassName("cn.itcast.xxx","cn.itcast.xxx.xxxx");startActivity(intent);
隐式意图:没有明确指定组件名的Intent称为隐式意图。系统会根据隐式意图中设置的动作(action)、类别(category)、数据(Uri和数据类型)找到最合适的组件。
清单文件AndroidManifest.xml中:
<activity android:name="com.itcast.intent.Activity02"> <intent-filter> <action android:name="cn.itscast.xxx"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter></activity>
使用隐式意图开启Activity的示例代码如下所示:
Intent intent = new Intent();// 设置动作和清单文件一样intent.setAction("cn.itscast.xxx");startActivity(intent);
标签指明了当前Activity可以响应的动作为”cn.itscast.xxx”,而标签则包含了一些类别信息,只有当和中的内容同时匹配时,Activity才会被开启。
2.Intent实现Activity之间的数据传递,回传
Intent不仅可以用来开启Activity,也可以在Activity之间传递数据。在数据传递时,可以使用putExtra()方法将数据存储在Intent中。
Activity01.java传递数据:
String data = "Hello Activity02"Intent intent = new Intent(this,Activity02.class);intent.putExtra("extra_data",data);startActivity(intent);
将数据从Activity02中取出:
Intent intent = getIntent();String data = = intent.getStringExtra("extra_data");
putExtra()不仅可以传递基本类型数据,还可以传递Bundle对象。
Bundle bundle = new Bundle();bundle.putString("name", "Linda");Intent intent = new Intent(this,Activity02.class);intent.putExtra(bundle);startActivity(intent);将数据从Activity02中取出 Intent intent = getIntent();Bundle bundle = intent.getExtras();String stuName = bundle.getString("name");
两个Activity之间实现数据回传代码:
Activity01:
Intent intent=new Intent(this,activity02.class);startActivityForResult(intent,1);
Activity02:
Intent intent=new Intent();intent.putExtra(“extra_data”,”Hello Activity01”);setResult(1,intent);finish();
Activity01:
protected void onActivityResult(int requestCode,int resultCode,Intent data){super.onActivityResult(requestCode,resultCode,data);If(resultCode==1){String data=data.getStringExtra(“extra_data”);Log.i(“Activity01”,data);}}
- android学习笔记——Intent
- android学习笔记——intent
- android学习笔记1——Intent
- Android学习笔记——Intent
- Android学习笔记--Intent
- android学习笔记---Intent
- Android学习笔记 - Intent
- Android学习笔记3——学习intent
- Android学习笔记(四)Activiy学习——Intent,context
- Android学习笔记(06)——Android中的Intent
- android学习笔记——解析Activity、Intent、Service
- Android学习笔记02——Intent的使用
- 转载——Android Activity和Intent机制学习笔记
- android学习笔记——Intent和IntentFilter
- River的Android学习笔记——Intent意图
- Pro Android学习笔记(三)——Intent
- Android学习笔记day1——Activity和Intent
- android学习笔记——使用Intent传递对象
- Java单例模式实现方式
- Java 基础之类集
- 中断处理函数的注意事项
- css 屏幕自适应
- 面向对象之关键字final
- Android学习笔记——Intent
- 百度站内搜索代码
- java list 交集 并集 差集 去重复并集
- ISP-坏点校正(DPC)
- Java设计模式之创建型模式--工厂方法及抽象工厂模式
- bzoj 2592 [Usaco2012 Feb]Symmetry
- C++ STL容器
- angularJs路由操作实例(一)
- 关于logicbrick(xylon)的ip安装