Android 如何在TabActivity的单个选项卡下管理多个活动
问题出在这里。在我的应用程序中,我有5个包含活动的选项卡。在每一个屏幕中,我都必须显示不同的屏幕。例如,选项卡的主要活动是listview,当我单击其中一个项目时,我希望显示另一个屏幕和另一个listview,当用户选择项目时,该屏幕将显示另一个屏幕等 所以我知道选项卡中的活动不容易管理,但我真的认为我需要这个解决方案。实际上,每个屏幕必须包含一个返回按钮,该按钮将返回到上一个屏幕,并具有上一个状态(列表中的相同位置) 为了在选项卡内开始新的活动,我使用了这里描述的技术 它基本上运行得很好,但是我遇到了一个问题,无法回到以前的活动。我目前的解决方案是像本网站上描述的那样开始之前的活动,但不带任何标志 这是我的两个真正的问题:Android 如何在TabActivity的单个选项卡下管理多个活动,android,Android,问题出在这里。在我的应用程序中,我有5个包含活动的选项卡。在每一个屏幕中,我都必须显示不同的屏幕。例如,选项卡的主要活动是listview,当我单击其中一个项目时,我希望显示另一个屏幕和另一个listview,当用户选择项目时,该屏幕将显示另一个屏幕等 所以我知道选项卡中的活动不容易管理,但我真的认为我需要这个解决方案。实际上,每个屏幕必须包含一个返回按钮,该按钮将返回到上一个屏幕,并具有上一个状态(列表中的相同位置) 为了在选项卡内开始新的活动,我使用了这里描述的技术 它基本上运行得很好,但是
- 当我尝试返回到选项卡的第一个主活动时,似乎创建了一个新实例,即使我使用了Intent.flag\u activity\u CLEAR\u TOP标志。因此,当我在这个活动和下一个活动之间进行多次往返时,我会得到一个StackErrorOverFlow
- 因为这些活动可以从不同的活动中获得,所以我必须始终记住父母的活动,通过在意图中给予它们。当我连续有5到6个屏幕时,它真的很沉重,如果活动。。。如果我能调用localActivityManager启动的最后一个活动,我将不胜感激
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中取出我的主要活动。您可以在这里看到答案:我对这段代码仍然有问题。我不知道如何处理android后退按钮。我有一个图形按钮,可以使用上面显示的方法返回到上一个活动,但是如果我尝试在设备的物理后退按钮上添加此行为,它将不起作用。我尝试过使用onKeyPressent和KEY_BACK事件,但它从未出现在本代码部分中 此外,使用这种子活动技术,我在启动新动画时没有滑动动画。我尝试手动添加动画,但我可能没有使用好的技术,因为它很滞后:
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);
}
谢谢我有同样的问题,我相信在我刚刚写的这篇博客文章中,我有一个非常好的答案,其中有一些代码示例。 让我知道它是否有用,或者是否需要改进