PagerTabStrip下某子Activity中,onActivityResult和startActivityForResult实现过程中遇到的问题

WiFiClientActivity下通过PagerTabStrip绑定三个子Activity:SettingActivity、HomeActivity、NetworkActivity。

HomeActivity中通过onActivityResult和startActivityForResult实现一个功能。

调试过程中发现HomeActivity中的onActivityResult一直不执行。

参考连接中的解决方案,大致了解了问题所在。(链接:http://www.cnblogs.com/relinson/archive/2012/03/25/startActivityForResult.html

解决方法大致如下:

1.通过父Activity启动其他Activity;

2.实现父Activity的onActivityResult方法,将该处接收到的请求转发给当前活动的子Activity;

3.自定义一个转发接口用来实现第2步中的转发功能;

4.子Activity中实现第3步接口中的方法用来接收返回信息;

结合所给的解决方法,基本解决问题,但还有需要注意的地方,主要是在第2步中:

1 // 获取当前活动的Activity实例
2 Activity subActivity = getLocalActivityManager().getCurrentActivity();

如上代码中获取的subActivity实例为NetworkActivity,是我们在pagerTabScrip中添加的最后一个Activity,而我们需要的subActivity是HomeActivity。

我们可以通过LocalActivityManager的适用来解决这个问题:

 1 final ArrayList<View> viewList = new ArrayList<View>();// 将要分页显示的View装入数组中
 2         Intent setting_intent = new Intent(this, SettingActivity.class);
 3         setting_intent.putExtra("WiFiAdmin", mWifiAdmin);
 4         viewList.add(getView("A", setting_intent));
 5         manager.startActivity("A", setting_intent);
 6         Intent home_intent = new Intent(this, HomeActivity.class);
 7         home_intent.putExtra("WiFiAdmin", mWifiAdmin);
 8         viewList.add(getView("B", home_intent));
 9         manager.startActivity("B", home_intent);
10         Intent wifi_intent = new Intent(this, NetworkActivity.class);
11         wifi_intent.putExtra("WiFiAdmin", mWifiAdmin);
12         viewList.add(getView("C", wifi_intent));
13         manager.startActivity("C", wifi_intent);

然后通过LocalActivityManager.getActivity来获取得到HomeActivity。

1 Activity subActivity= manager.getActivity("B");

 

转载于:http://www.cnblogs.com/ttghc/articles/Android_PagerTabStrip_onActivityResult.html

 

posted on 2013-11-22 21:28  ttghc  阅读(609)  评论(0编辑  收藏  举报

导航