Android 四大组件 —— 活动(活动的隐式跳转)
来源:互联网 发布:淘宝店铺出租转让 编辑:程序博客网 时间:2024/06/07 03:48
上一篇我们讨论了活动的显示跳转,现在来学习活动的隐式跳转
相比于显式Intent,隐式Intent 则含蓄了许多,它并不明确指出我们想要启动哪一个活动,而是指定了一系列更为抽象的action 和category 等信息,然后交由系统去分析这个Intent,并帮我们找出合适的活动去启动。
什么叫做合适的活动呢?简单来说就是可以响应我们这个隐式Intent 的活动,那么目前SecondActivity 可以响应什么样的隐式Intent 呢?额,现在好像还什么都响应不了,不过很快就会有了。
第一步 通过在<activity>标签下配置<intent-filter>的内容,可以指定当前活动能够响应的action和category,打开AndroidManifest.xml,添加如下代码:
<activity android:name="cn.com.qiang.buttonjump.SecondActivity"> <intent-filter > <action android:name="jump"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter></activity>
在<action> 标签中我们指明了当前活动可以响应com.example.activitytest.ACTION_START 这个action,而<category>标签则包含了一些附加信息,更精确地指明了当前的活动能够响应的Intent 中还可能带有的category。只有<action>和<category>中的内容同时能够匹配上Intent 中指定的action 和category 时,这个活动才能响应该Intent。
第二步 在MainAcivity 中调用setAction 及 addCategory 则可以实现隐式跳转
button1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent();intent.setAction("jump");intent.addCategory("android.intent.category.DEFAULT");startActivity(intent);}});
重新运行程序,在MainActivity 的界面点击一下按钮,你同样成功启动SecondActivity了。不同的是,这次你是使用了隐式Intent 的方式来启动的,说明我们在<activity>标签下配置的action 和category 的内容已经生效了!
下面是具体代码:
MainActivity 部分:
package cn.com.qiang.buttonjump;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button1 = (Button)findViewById(R.id.button1);button1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent();intent.setAction("jump");intent.addCategory("android.intent.category.DEFAULT");startActivity(intent);}});}}
AndroidManfest.xml 部分
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cn.com.qiang.buttonjump" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme"> <activity android:name="cn.com.qiang.buttonjump.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="cn.com.qiang.buttonjump.SecondActivity"> <intent-filter > <action android:name="jump"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity> </application></manifest>
- Android 四大组件 —— 活动(活动的隐式跳转)
- Android 四大组件 —— 活动(活动的隐式跳转)
- Android 四大组件 —— 活动(使用Intent 实现活动的显示跳转)
- Android 四大组件 —— 活动(使用Intent 实现活动的显示跳转)
- 四大组件 — Activity活动
- android四大组件之活动(Activity)
- Android四大组件之一活动(一)
- Android 四大组件——活动 巧用 Activity 和 Fragment
- Android四大核心组件——Activity活动
- Android四大组件之活动
- 【27】四大组件之——Activity(活动)
- 四大组件之活动
- android四大金刚(组件)之-:Activity(活动窗口)
- Android四大组件之活动分析(笔记)
- 四大组件之活动(初步接触)
- 四大组件之Activity(活动)小结
- Android之旅第三站——活动(Activity)的显示和隐式跳转…
- 四大组件之service——应用实例三(活动和服务的通信&服务生命周期)
- ScrollView
- Oracle Meger Into
- 自学QT之QMovie播放gif(播放、暂停和继续)
- Android Studio bug:Gradle sync failed: Cause: org/gradle/api/publication/maven/internal/DefaultMaven
- 使用Latex模板时编译提示缺少{widetext.sty}
- Android 四大组件 —— 活动(活动的隐式跳转)
- vijos P1597 2的幂次方 题解(递归)
- shell批量将文件从dos格式转为Unix
- Codeforces 144D Missile Silos(SPFA最短路)
- LCD1602液晶显示+超声波测距-51单片机
- Linux命令行学习之路(一)
- 神经网络中误差反向传播(back propagation)算法的工作原理
- 解决discuz轮播图在宽窄屏切换时无法自适应的错位问题(修改和固定整个页面的宽度)
- Educational Codeforces Round 4:(612A:枚举、 612B:水 、 612C:stack、612D:sort )