Tabhost中子Activity使用startActivityForResult后获取不到回调值问题的解决办法
来源:互联网 发布:图片表格识别软件 编辑:程序博客网 时间:2024/05/24 15:40
问题描述:当主Activity A是一个Tabhost布局,或者是一个ActivityGroup,在子Activity B中使用startActivityForResult来开启一个新的Activity C,新Activity C操作完后返回Activity B并传回一个值,这个值在Activity B的onActivityResult方法中无法取到。
问题原因:startActivityForResult后触发的回调方法并不在Activity B中,而是在Activity A中,Tabhost和ActivityGroup都是Activity容器,在子Activity中使用startActivityForResult后都只会触发其父Activity的回调方法。
解决方案:
1.在Activity B中使用如下方法开启Activity C
- getParent().startActivityForResult(intent, 0);
2.新建一个回调接口OnTabActivityResultListener
- public interface OnTabAactivityResultListener{
- public void onTabActivityResult(int requestCode, int resultCode, Intent data);
- }
3.让Activity B实现上述接口,在Activity A的onActivitResult方法中做如下操作:
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- //取得当前活动的Activity
- Activity liveActivity = getLocalActivityManager().getCurrentActivity();
- //回调方法
- OnTabAactivityResultListener onTabAactivityResultListener = (OnTabAactivityResultListener)liveActivity;
- onTabAactivityResultListener.onTabActivityResult(requestCode, resultCode, data);
- }
4.在Activity B中实现接口OnTabActivityResultListener中的方法,取到返回值
- @Override
- public void onTabActivityResult(int requestCode, int resultCode, Intent data) {
- if (resultCode == RESULT_OK) {
- Bundle bundle = data.getExtras();
- String type = bundle.getString("type");
- }
- }
- Tabhost中子Activity使用startActivityForResult后获取不到回调值问题的解决办法
- Tabhost中子Activity使用startActivityForResult后获取不到回调值问题的解决办法
- 移动开发:Tabhost中子Activity使用startActivityForResult后获取不到回调值问题的解决办法
- Tabhost中子Activity使用startActivityForResult后获取不到回调值问题的解决办法
- 使用tabhost后按返回键 监听不到 onKeyDown 解决办法
- 关于startActivityForResult()方法后Activity直接退出的问题原因和解决办法
- 关于调用startActivityForResult()方法后Activity直接退出的问题原因和解决办法
- Tabhost中子Activity显示异常
- android ActivityGroup中子Activity的setResult()后的onActivityResult不运行的解决办法
- 在TabHost的子Activity中startActivityForResult调用其他Activity时候遭遇到onActivityResult方法不响应的问题.
- Tabhost中子Activity跳转到新的activity,从该activity重新返回子Activity问题解决
- startActivityForResult 收不到 resultCode 的诡异问题
- 关于Activity和Fragment同时使用startActivityForResult的问题
- 使用PopUpWindow导致Activity组件获取不到焦点问题
- startActivityForResult using the tab Activity 的解决办法
- TabActivity中子Activity的跳转问题
- TabHost中使用startActivityForResult无法接收返回值的解决方案
- TabHost中使用startActivityForResult无法接收返回值的解决方案
- IIS 7.5, Classic ASP and Access database
- 文本框相加运算
- [Uncle Bob Martin] Screaming Architecture
- 黄淮学院CSDN高校俱乐部巡讲
- 省赛热身赛之_Taxi Fare
- Tabhost中子Activity使用startActivityForResult后获取不到回调值问题的解决办法
- 省赛热身赛之——Yet Another Story of Rock-paper-scissors
- Python 的 and-or 技巧
- 委托----http://www.cnblogs.com/superpcer/archive/2011/06/06/2073751.html
- ExtJS 开发调试工具大全
- spring整合struts2方法及原理
- OSCHINA 联通代理节点的 Nginx 配置
- Sicily 1029 Rabbit
- 深入浅出插入类排序算法(直接插入, 折半插入, 希尔排序)