Android: 采用 startActivityForResult 实现多个Activity间不同不同跳转流程
来源:互联网 发布:php 聊天室 设计思路 编辑:程序博客网 时间:2024/05/22 15:57
当一个程序里面有多个Activity(例如:A1、A2、A3、A4四个Activity),正常的流程是A1->A2->A3->A4,然后再倒回来。但是为了改善用户体验,又需要能够直接A4->A1或者A2->A4等等。
在Android中有多种方法能够实现Activity之间的跳转,像往startActivity传入目标Activity的类名或者其<intent-filter>等,虽然也能够实现想要的跳转,但是这样不便于Activitys的管理,Activity栈将变得混乱。这个时候要完全退出程序,就得费一番周折....
A1 -> A2的 intent 定义是 Intent intent = new Intent(); intent.setClass(this,A2.class);
指定一个 int 作为 requestCode 比如 startActivityForResult(intent, 1);
A2 -> A3 的 intent 定义是 Intent intent = new Intent(); intent.setClass(this,A3.class);
指定一个 int 作为 requestCode 比如 startActivityForResult(intent, 1);
A3 -> A4 的 intent 定义是 Intent intent = new Intent(); intent.setClass(this,A4.class);
指定一个 int 作为 requestCode 比如 startActivityForResult(intent, 1);
A4 添加一个从A4 -> A1的返回按钮,按钮的点击事件调用下面两行方法:
this.setResult(10) ;//this.setResult(int resultCode),resultCode 可以自定义
this.finish();
关闭A4会触发A3里面的onActivityResult(int requestCode, int resultCode, Intent data) 方法。
在这个方法里面做判断就行了。
前两个参数分别是 我们设置的 requestCode 和 resultCode
代码如下
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 1&& resultCode == 10){
this.setResult(10);
this.finish();
}
}
此方法先匹配 requestCode 和 resultCode 然后设置 resultCode 在关闭A3,想同的道理关闭A2
这样就返回A1了。
这个跳转机制的关键在于如何定义requestCode, resultCode这两个参数,结合好这两个参数就能够实现非常多的功能,而且Intent又能够搭载数据,excellent!!
如果在程序中都采用这种机制,则实现完全退出程序的方法就很明了了!!
- Android: 采用 startActivityForResult 实现多个Activity间不同不同跳转流程
- 安卓startActivityForResult实现多个Activity之间不同跳转流程
- 点击多个URL跳转多个不同界面使用一个Activity实现
- android : 用程序控制 TabHost 中不同Activity间的跳转。
- 利用同一个Activity界面实现二个不同的界面之间的跳转
- Activity嵌套多个Fragment实现不同全屏模式状态栏
- 返回上一层activity的实现方式(拓展:不同activity间的任意跳转)
- 返回上一层activity的实现方式(拓展:不同activity间的任意跳转)
- Android中不同包路径下Activity跳转的实现(解决ActivityNotFoundException)
- Android中不同包路径下Activity跳转的实现(解决ActivityNotFoundException)
- Android中不同包路径下Activity跳转的实现(解决ActivityNotFoundException)
- Android中不同包路径下Activity跳转的实现(解决ActivityNotFoundException)
- 不同包activity跳转问题
- (android)点击Button跳转到不同Activity
- 不同Activity之间传递数据--Bundle对象和startActivityForResult方法的实现
- android activity之间跳转 setResult 和 StartActivityForResult
- android使用startActivityForResult跳转Activity并回传值
- Android 之不同Activity间页面的跳转与传递参数
- jsp + oracle 排序分页 高效sql语句
- C#命名规则、开发习惯和风格
- HTML系统学习之七 <CSS单位,HTML常用实体,HTML的头部,HTML事件>
- TOMCAT-HOME/webapps/项目名/META-INF/context.xml的注释含有中文,启动报异常
- http 与 https 的区别
- Android: 采用 startActivityForResult 实现多个Activity间不同不同跳转流程
- UC不支持的CSS
- linux进程间通信之 管道,命名管道,协同进程区别
- AC自动机算法
- android开发问题汇总
- Oracle经验集锦
- android应用开发全程实录-关于google map的部分章节-漂亮的气泡地图
- 迎接2012之JavaScript数组排序等操作
- Android 文件打开方式