1

我在包含一些选项卡的 android 项目中有 TabActivity。在每个选项卡中,我可以打开各种活动,在选项卡中打开它后,我想返回到同一选项卡中的上一个活动,但默认的 android 行为会关闭我的根选项卡活动。我怎样才能实现我需要的行为?

4

1 回答 1

0

有几种方法可以做到这一点。第一个涉及创建一个自定义 GroupActivity,它将跟踪来自 LocalActivityManager 的堆栈,然后为每个选项卡扩展该类。为此,请查看本教程:

http://ericharlow.blogspot.com/2010/09/experience-multiple-android-activities.html

一种更简单的方法是将选项卡的子视图数组保留在初始 ActivityGroup 类中,然后覆盖后退按钮。这是一些示例代码:

public void replaceContentView(String id, Intent newIntent) {
    View view = getLocalActivityManager()
                    .startActivity(id, newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)) 
                    .getDecorView();
    viewList.add(view); // Add id to keep track of stack.
    this.setContentView(view);
}       


public void previousView() {

    if(viewList.size() > 0) {  
        viewList.remove(viewList.size()-1);
        if (viewList.size() > 0)
            setContentView(viewList.get(viewList.size()-1)); 
        else
          initView();
    }else {  
        finish();  
    }  
}

initView() 类包含原始活动视图的所有膨胀。这样,如果数组中没有更多视图,您可以调用此方法重新生成原始活动。

于 2011-10-13T18:03:45.547 回答