在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方法
02 | protected void onActivityResult( int requestCode, int resultCode, Intent data) { |
04 | Activity subActivity = getLocalActivityManager().getCurrentActivity(); |
06 | if (subActivity instanceof OnTabActivityResultListener) { |
08 | OnTabActivityResultListener listener = (OnTabActivityResultListener) subActivity; |
10 | listener.onTabActivityResult(requestCode, resultCode, data); |
12 | super .onActivityResult(requestCode, resultCode, data); |
3.自定义接口
2 | * 解决子Activity无法接收Activity回调的问题 |
3 | * @author Administrator |
6 | public interface OnTabActivityResultListener { |
7 | public void onTabActivityResult( int requestCode, int resultCode, Intent data); |
4.子Activity需要实现onTabActivityResult方法
2 | public void onTabActivityResult( int requestCode, int resultCode, Intent data) { |
3 | if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) { |