我在我的安卓应用程序中实现了TabActivity。在第一次加载活动并单击第二个选项卡加载活动时,例如第二个选项卡上的activity2,第二个选项卡中的=>,在单击网格视图事件时,我使用下面的代码打开第二个选项卡上的子activity23:
Intent intent=new Intent(activity2.this, activity23.class);
TabGroupActivity parentActivity = (TabGroupActivity)getParent();
parentActivity.startChildActivity("activity23", intent);当我从activity23返回(完成)到activity2时,我再次单击grideview转到activity23,然后它不会启动子活动。我测试了各种设计,它的工作原理,除了android2.3.3外,都设计得很好。根据我的测试,这个问题只出现在2.3.3和2.3.6设计中。
调试后,我发现TabGroupActivity=> StartChildActivity()的函数如下所示
public void startChildActivity(String Id, Intent intent) { 窗口= etLocalActivityManager().startActivity(Id,etLocalActivityManager if (window != null) { mIdList.add(Id);setContentView(window.getDecorView());}
}这里,在android 2.3.3中,窗口对象第一次获得null,但是如果我们完成子对象并再次启动相同的子对象来启动,那么窗口对象就变成null,所以它不是load子活动。
如果有人有任何解决这个问题的想法,那么最受欢迎的是,如果任何人都有完整的tabView代码,用于所有安卓系统,那么最受欢迎的是上面的2.2。
发布于 2014-04-04 06:09:06
我解决了这个问题,当我在TabGroupActivity中启动子活动时,将随机数作为唯一id传递,下面是解决方案的代码
Intent intent=new Intent(activity2.this,activity23.class);
TabGroupActivity parentActivity = (TabGroupActivity)getParent();
parentActivity.startChildActivity((new Random().nextInt(90)+11)+"", intent);我们必须传递唯一的时候,当我们创建新的意图,以推动标签。
https://stackoverflow.com/questions/22806499
复制相似问题