Java 如何在按下TAB应用程序中chlild activity上的back按钮时返回到父活动

Java 如何在按下TAB应用程序中chlild activity上的back按钮时返回到父活动,java,android,android-layout,android-widget,Java,Android,Android Layout,Android Widget,我有4个带有活动组的选项卡。所有选项卡都包含项目列表,按下任何项目时,其描述将显示在新活动中。。 我正在使用activitygroup在选项卡中嵌入子活动,并使用replace contentview更改activitygroup视图 当我按下“上一步”按钮时,我从子级调用finish(),并立即退出应用程序。有没有办法使用“活动组”返回到父级活动 我正在使用以下代码更改activitygroup视图..bt不知道如何返回此活动 public void replaceContentView(St

我有4个带有活动组的选项卡。所有选项卡都包含项目列表,按下任何项目时,其描述将显示在新活动中。。 我正在使用activitygroup在选项卡中嵌入子活动,并使用replace contentview更改activitygroup视图

当我按下“上一步”按钮时,我从子级调用finish(),并立即退出应用程序。有没有办法使用“活动组”返回到父级活动

我正在使用以下代码更改activitygroup视图..bt不知道如何返回此活动

public void replaceContentView(String id, Intent newIntent) 
{
    View mview = getLocalActivityManager().startActivity(id,newIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)).getDecorView(); 
    this.setContentView(mview);

}  

我也遇到了这个问题,但已经解决了。看看下面的代码,希望对你也有帮助

你的活动组应该是这样的

public class ABCGroup extends ActivityGroup{

public static ABCGroup group;
private ArrayList<View> history;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.history = new ArrayList<View>();
    group = this;

    View view = getLocalActivityManager().startActivity
                ("ParentActivity", 
                new Intent(this, ParentActivity.class)
                .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
                .getDecorView();

    replaceView(view);
}

public void replaceView(View v) {
    // Adds the old one to history
    history.add(v);
    // Changes this Groups View to the new View.
    setContentView(v);
}

public void back() {  
    if(history.size() > 0) {  
        history.remove(history.size()-1);
        if(history.size()<=0){
            finish();
        }else{
            setContentView(history.get(history.size()-1));
        }
    }else {  
        finish();  
    }  
}

@Override  
public void onBackPressed() {  
    ABCGroup.group.back();
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
    if (keyCode == KeyEvent.KEYCODE_BACK){
        ABCGroup.group.back();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
}
在您的孩子活动中使用

public boolean onKeyDown(int keyCode, KeyEvent event){
    if (keyCode == KeyEvent.KEYCODE_BACK){
        ABCGroup.group.back();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

您好,先生……我正在使用您的代码。它非常有效。我的问题是,当我按下“后退”按钮时,我的活动组的第一个视图没有显示。@RahulSharma:我一直在尝试您的解决方案。但是没有得到输出。你能解释一下吗?这对我很有效。在标签页上仍然很难找到好的解决方案,所以非常感谢!)请帮助我,我有不同模块的选项卡,其中一个选项卡表示设置我想在设置选项卡中打开一个新活动我可以通过在子活动中将设置选项卡活动设置为activitygroup bt来完成此操作当我按下它时关闭应用程序我想返回设置活动
public boolean onKeyDown(int keyCode, KeyEvent event){
    if (keyCode == KeyEvent.KEYCODE_BACK){
        ABCGroup.group.back();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}