安卓活动跳转之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--------------

 

全部评论

相关推荐

07-07 17:06
已编辑
深圳技术大学 golang
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-09 16:15
我应届生,去年10月份开始在这家公司实习,到今年10月份正好一年想(实习+试用期),在想要不要提前9月份就离职,这样好找工作些,但又差一个月满一年,又怕10月份国庆回来离职,容易错过了下半年的金九银十,到年底容易gap到年后
小破站_程序员YT:说这家公司不好吧,你干了快一年 说这家公司好吧,你刚毕业就想跑路说你不懂行情吧,你怕错过金九银十说 你懂行情吧,校招阶段在实习,毕业社招想换工作 哥们,我该怎么劝你留下来呢
应届生,你找到工作了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务