我在android项目中有TabActivity,其中包含一些标签。在每个选项卡中,我可以打开各种活动,在选项卡中打开后我想回到相同选项卡中的上一个活动,但默认的android行为关闭我的根选项卡活动。我怎么能实现我需要的行为?
答案 0 :(得分: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()类保存原始活动视图的所有膨胀。这样,如果数组中没有更多视图,则可以调用此方法重新生成原始活动。