android Intent
来源:互联网 发布:网络兼职qq群 编辑:程序博客网 时间:2024/06/06 12:58
一、什么是Intent?Intent的中文意思是目的。在Android中也是“目的”的意思。就是我们要去哪里,从这个activity要前往另一个Activity就需要用到Intent。示例代码一: 1: //定义一个Intent 2: Intent intent = new Intent(IntentDemo.this, AnotherActivity2.class); 3: //启动Activity 4: startActivity(intent);以上示例代码的作用是从IntentDemo这个activity切换到AnotherActivity2。这是Intent其中一种构造方法,指定两个Activity。为什么需要指定两个活动呢?因为在Android中有一个活动栈,这样的构造方式才能确保正确的将前一个活动压入栈中,才能在触发返回键的时候活动能够正确出栈。注意:所有的Activity都必须先在AndroidManifest.xml里面配置声明。一下为本文用到的程序配置文件 1: <?xml version="1.0" encoding="utf-8"?> 2: <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3: package="com.halzhang.android.intent" android:versionCode="1" 4: android:versionName="1.0"> 5: <application android:icon="@drawable/icon" android:label="@string/app_name"> 6: <activity android:name=".IntentDemo" android:label="@string/app_name"> 7: <intent-filter> 8: <action android:name="android.intent.action.MAIN" /> 9: <category android:name="android.intent.category.LAUNCHER" /> 10: </intent-filter> 11: </activity> 12: <activity android:name=".AnotherActivity" android:label="another"> 13: <intent-filter> 14: <action android:name="android.intent.action.EDIT" /> 15: <!-- category一定要配置,否则报错:找不到Activity --> 16: <category android:name="android.intent.category.DEFAULT" /> 17: </intent-filter> 18: </activity> 19: 20: <activity android:name=".AnotherActivity2" android:label="another2"> 21: <intent-filter> 22: <action android:name="android.intent.action.EDIT" /> 23: <category android:name="android.intent.category.DEFAULT" /> 24: </intent-filter> 25: </activity> 26: </application> 27: <uses-sdk android:minSdkVersion="3" /> 28: <!-- 29: 上面配置的两个activity具有相同的action类型,都为“android.intent.action.EDIT” 30: 当Intent的action属性为Intent.ACTION_EDIT时,系统不知道转向哪个Activity时, 31: 就会弹出一个Dialog列出所有action为“android.intent.action.EDIT”的 32: Activity供用户选择 33: --> 34: </manifest> 二、Intent的构造函数公共构造函数:1、Intent() 空构造函数2、Intent(Intent o) 拷贝构造函数3、Intent(String action) 指定action类型的构造函数4、Intent(String action, Uri uri) 指定Action类型和Uri的构造函数,URI主要是结合程序之间的数据共享ContentProvider5、Intent(Context packageContext, Class<?> cls) 传入组件的构造函数,也就是上文提到的6、Intent(String action, Uri uri, Context packageContext, Class<?> cls) 前两种结合体Intent有六种构造函数,3、4、5是最常用的,并不是其他没用!Intent(String action, Uri uri) 的action就是对应在AndroidMainfest.xml中的action节点的name属性值。在Intent类中定义了很多的Action和Category常量。示例代码二: 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,如下图: 如果是用示例代码一那种方式进行发送则不会有这种情况。三、利用Intent在Activity之间传递数据在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之间的数据传递!
0 0
- Android intent intent-filter
- Android intent intent-filter
- Android intent intent-filter
- Android intent
- Android Intent
- Android Intent
- android Intent
- android intent
- android intent
- android intent
- Android------Intent
- android Intent
- Android Intent
- android intent
- Android Intent
- android intent
- Android Intent
- android --------intent
- Android——ContentProvider和Uri详解
- GIT和SVN之间的五个基本区别
- 爱从来都在,只是平时你没有发现
- 第四周作业(课本习题部分)
- java验证公民身份证真实性
- android Intent
- 用 Maven 做项目管理
- 第四周作业
- android 主线程和子线程之间的消息传递
- 多国卫星MH370搜索区发现漂浮物 恶劣天气阻搜救
- 新人报到
- php
- senchatouch 与PHP后台数据交互
- mv命令