2010-07-08 92 views
4

以下是问题所在。在我的应用程序中,我有5个包含活动的选项卡。在他们每个人中,我必须展示不同的屏幕。例如,一个选项卡的主要活动是一个列表视图,当我点击其中一个项目时,我想要显示另一个列表视图的第二个屏幕,当用户选择一个项目时会显示另一个屏幕等。如何在TabActivity的单个选项卡下管理多个活动

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

要启动选项卡里面新的活动,我这里使用的http://gamma-point.com/content/android-how-have-multiple-activities-under-single-tab-tabactivity

中描述的技术它的工作原理主要是不错,但我遇到一个问题,回到以前的活动。我目前的解决方案包括启动之前的活动,如本网站所述,但没有任何标志。

因此,这里有我的两个现实的问题:

  • 当我试图回到片的第一和主要活动,似乎一个新的实例被创建,即使我用标志 Intent.FLAG_ACTIVITY_CLEAR_TOP。所以当我在这个活动和下一个活动之间做几次往返时,我得到一个StackErrorOverFlow。

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

感谢您的帮助, 如果我无法理解,请告诉我!

回答

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 activitity。你可以在这里看到答案:http://gamma-point.com/content/android-how-have-multiple-activities-under-single-tab-tabactivity#comment-4

1

我仍然有这个代码的问题。我不知道如何处理android后退按钮。我有一个图形按钮来回到上面显示的方法的最后一个活动,但如果我尝试在设备的物理后退按钮上添加此行为,则不起作用。我使用KEY_BACK事件对onKeyPressent进行了尝试,但它永远不会在此代码段中进行。

此外,使用这种subactivites技术,我在启动新动画时没有滑动动画。我尝试手动添加动画,但我可能不会用好的技术,因为它是laggy:

public void replaceContentView(String id, Intent newIntent, int flag) { 
    View view = mLocalActivityManager.startActivity(id, newIntent.addFlags(flag)).getDecorView(); 

    Animation animation = AnimationUtils.loadAnimation(this, R.anim.slide_right); 
    view.startAnimation(animation); 
    this.setContentView(view); 
} 

感谢

3

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

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

+0

这很好,非常感谢。 – 2010-10-14 15:28:14

相关问题