TabHost中使用startActivityForResult无法接收返回值的解决方案[转]
来源:互联网 发布:龙腾世纪审判优化 编辑:程序博客网 时间:2024/05/21 14:52
在TabHost的子Activity中startActivityForResult调用其他Activity时候遭遇到onActivityResult方法不响应的问题.
解决办法如下:
1.通过父Activity启动其他Activity;
2.实现父Activity的onActivityResult方法,将该处接收到的请求转发给当前活动的子Activity;
3.自定义一个转发接口用来实现第2步中的转发功能;
4.子Activity中实现第3步接口中的方法用来接收返回信息;
代码如下:
1.通过父Activity启动其他Activity
1
getParent().startActivityForResult(
new
Intent(...), REQUEST_CODE);
2.实现父Activity的onActivityResult方法
01
@Override
02
protected
void
onActivityResult(
int
requestCode,
int
resultCode, Intent data) {
03
// 获取当前活动的Activity实例
04
Activity subActivity = getLocalActivityManager().getCurrentActivity();
05
//判断是否实现返回值接口
06
if
(subActivity
instanceof
OnTabActivityResultListener) {
07
//获取返回值接口实例
08
OnTabActivityResultListener listener = (OnTabActivityResultListener) subActivity;
09
//转发请求到子Activity
10
listener.onTabActivityResult(requestCode, resultCode, data);
11
}
12
super
.onActivityResult(requestCode, resultCode, data);
13
}
3.自定义接口
1
/**
2
* 解决子Activity无法接收Activity回调的问题
3
* @author Administrator
4
*
5
*/
6
public
interface
OnTabActivityResultListener {
7
public
void
onTabActivityResult(
int
requestCode,
int
resultCode, Intent data);
8
}
4.子Activity需要实现onTabActivityResult方法
1
@Override
2
public
void
onTabActivityResult(
int
requestCode,
int
resultCode, Intent data) {
3
if
(requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
4
//实现该处逻辑
5
...
6
}
7
}
- TabHost中使用startActivityForResult无法接收返回值的解决方案
- TabHost中使用startActivityForResult无法接收返回值的解决方案
- TabHost中使用startActivityForResult无法接收返回值的解决方案
- TabHost中使用startActivityForResult无法接收返回值的解决方案
- TabHost中使用startActivityForResult无法接收返回值的解决方案
- TabHost中使用startActivityForResult无法接收返回值的解决方案[转]
- Android TabHost中使用startActivityForResult无法接收返回值的解决方案
- 解决TabHost中使用startActivityForResult无法接收返回值
- onActivityResult中调用startActivityForResult接收不到返回值
- [8]TabHost在TabHost中子Activity无法接收返回值
- StartActivityForResult刚跳转就接收到取消的返回值
- 接收Activity返回的结果startActivityForResult
- Fragment中startActivityForResult,并在Fragment中接收返回结果
- Fragment中startActivityForResult,并在Fragment中接收返回结果
- 从Activity中返回数据--startActivityForResult的使用..
- Fragment中调用startActivityForResult()返回值的实现
- 使用onNewIntent实现startActivityForResult的返回传值
- shell 中函数返回值的接收
- jsp导出excel 解决文件名中文乱码
- 英飞凌最新资料大全
- linux 获取系统信息常用命令
- mini版CentOS 安装nginx1.2.7
- QT Creator2.7与vs2008
- TabHost中使用startActivityForResult无法接收返回值的解决方案[转]
- c语言的static属性
- Random generator and text with OpenCV¶
- ubuntu软件源
- Programming with the APR – Using APR HashTables
- JUnit4教程
- Java获取网页源代码
- 国际化专业开源的电子商务系统-magento
- 古典加密算法(1)