安卓活动跳转之Intent使用

如何让自己的的程序能够在活动之间来回切换,变的高大上呢?使用Intent可以实现这一点。

 

Intent(中文意思:意图)大致可以分为显示Intent和隐式Intent

显示Intent很直白,一般只需两个语句即可实现活动的跳转:

Intent intent = new Intent(MainLayoutActivity.this , DialogActivity.class);
//创建一个Intent对象,第一个参数表示上下文,第二个参数表示要启动的目标活动,也就是说在
//MainLayoutActivity这个活动的基础上启动DialogActivity这个活动
startActivity(intent);//然后调用Activity类提供的startAcitivity()方法,用于启动一个活动

隐式Intent相对较复杂,但他比较灵活,他并不明确指出我们要启动哪一个活动,而是指定一系列更为抽象的action和category等信息,然后交由系统去分析这个Intent,并帮我们找出合适的活动去启动。合适的活动是指满足Intent中指定的action和category信息的活动。那么如何让活动成为一个合适的活动,并让其他活动能够通过隐式Intent启动该活动呢?我们需要进行如下设置:

打开AndroidManifest.xml文件,并找到改活动相应的代码部分(假定该活动名称叫NormalActivity),进行如下配置

<activity android:name=".NormalActivity">
      <intent-filter>//中文名可翻译为:意图过滤
            //将动作名称命名为:com.example.activitytest.ACTION.START
           <action android:name="com.example.activitytest.ACTION.START" />
            //将分类名称命名为:默认分类
           <category android:name="android.intent.category.DEFAULT" />
      </intent-filter>
</activity>

然后其他活动的.java文件中添加如下代码,即可实现活动的跳转:

//直接引用NormalActivity活动的action的字符串传入Intent
Intent intent = new Intent("com.example.activitytest.ACTION.START");
startActivity(intent);

第一行代码表示我们想要启动能够响应com.example.activitytest.ACTION.START这个action的活动,这里并没有添加category的信息,但是还是可以启动NormalActivity这个活动,这是为什么呢?这是因为"android.intent.category.DEFAULT"是一种默认的category,在调用startActivity()这个方法的时候会自动将这个category添加到这个Intent中。你也可以指定一个活动的category,然后使用addCategory()这个方法给Intent添加category,从而实现灵活的活动跳转。

-----------END--------------

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值