具有多个子活动的Android TabActivity后退按钮功能
我在android项目中有TabActivity,其中包含一些选项卡。在每个选项卡中,我可以打开各种活动,在一个选项卡中打开后,我希望返回到同一选项卡中的上一个活动,但默认android行为关闭我的根选项卡活动。我如何才能实现我需要的行为?有几种方法可以做到这一点。第一个涉及到创建一个自定义GroupActivity,它将从LocalActivityManager跟踪堆栈,然后为每个选项卡扩展该类。为此,请查看本教程: 一种更简单的方法是在初始ActivityGroup类中保留选项卡的子视图数组,然后覆盖“后退”按钮。下面是一些示例代码:具有多个子活动的Android TabActivity后退按钮功能,android,android-activity,tabactivity,Android,Android Activity,Tabactivity,我在android项目中有TabActivity,其中包含一些选项卡。在每个选项卡中,我可以打开各种活动,在一个选项卡中打开后,我希望返回到同一选项卡中的上一个活动,但默认android行为关闭我的根选项卡活动。我如何才能实现我需要的行为?有几种方法可以做到这一点。第一个涉及到创建一个自定义GroupActivity,它将从LocalActivityManager跟踪堆栈,然后为每个选项卡扩展该类。为此,请查看本教程: 一种更简单的方法是在初始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()类保存原始活动视图的所有扩展。通过这种方式,如果数组中没有更多视图,您可以调用此方法来重新生成原始活动。@重写公共布尔onKeyDown(int-keyCode,KeyEvent-event){if(keyCode==KeyEvent.keyCode\u BACK){//防止默认实现上一个刚刚完成当前活动返回true;}返回super.onKeyDown(键码,事件);}