如何在TabActivity的单个选项卡下管理多个活动

时间:2010-07-08 15:00:07

标签: android

这是问题所在。在我的应用程序中,我有5个包含活动的选项卡。在每一个中,我必须显示不同的屏幕。例如,选项卡的主要活动是列表视图,当我点击其中一个项目时,我想显示另一个列表视图的第二个屏幕,当用户选择项目等时将显示另一个屏幕。

所以我知道标签中的活动不容易管理,但我真的认为我需要这个解决方案。实际上,每个屏幕必须包含一个后退按钮,它将返回上一个屏幕,具有前一个状态(列表中的相同位置)。

要在标签中开始新活动,我使用了此处描述的技术http://gamma-point.com/content/android-how-have-multiple-activities-under-single-tab-tabactivity

它的效果非常好,但我遇到了回到之前活动的问题。我现在的解决方案包括启动之前的活动,就像在本网站上描述的那样,但没有任何标志。

所以这是我的两个真正的问题:

  • 当我尝试返回选项卡的第一个和主要活动时,即使我使用标志 Intent.FLAG_ACTIVITY_CLEAR_TOP ,也似乎创建了一个新实例。所以当我在这个活动和下一个活动之间进行几次往返时,我获得了一个StackErrorOverFlow。

  • 因为可以从不同的活动中访问活动,所以我必须始终记住父母的活动,通过他们的意图。当我连续5或6个屏幕时,它真的很重,如果活动我必须记住盛大的父母......如果我能调用localActivityManager启动的最后一个Activity,我真的很感激。

感谢您的帮助, 如果我不明白,请告诉我!

3 个答案:

答案 0 :(得分:3)

我有同样的问题,我相信我对我刚写的这篇博客文章中的一些代码示例有一个很好的答案。 multiple-android-acitivities

让我知道它是否有用,或需要改进。

答案 1 :(得分:2)

好的,解决方案(在上面的网站上给出)是:

this.m_backButton.setOnClickListener(new OnClickListener() { 
  @Override 
  public void onClick(View v) {
  Intent intent = new Intent(v.getContext(), Activity1.class);
  Activity1 parentActivity = (Activity1)getParent();  
  parentActivity.replaceContentView("activity1", intent, 
                 Intent.FLAG_ACTIVITY_REORDER_TO_FRONT ); 
  }
});

从ActivityGroup中取出我的主要活动。你可以在这里看到答案:http://gamma-point.com/content/android-how-have-multiple-activities-under-single-tab-tabactivity#comment-4

答案 2 :(得分:1)