我有 4 个带有 Activity 组的选项卡。所有选项卡都包含项目列表,按下任何项目时,其说明将显示在新 Activity 中。 我正在使用 Activity 组将子 Activity 嵌入到选项卡中。并且我正在使用替换内容 View 来更改 Activity 组 View 。
当我按下后退按钮时,我从 child 那里调用 finish() ,然后我立即退出应用程序..有没有办法使用 Activity 组返回到父 Activity ...???
我正在使用以下代码来更改 Activity 组 View ..bt 不知道如何返回此 Activity ..
public void replaceContentView(String id, Intent newIntent)
{
View mview = getLocalActivityManager().startActivity(id,newIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)).getDecorView();
this.setContentView(mview);
}
最佳答案
我也遇到了这个问题,但解决了它,看看下面的代码,希望对你也有帮助
你的activityGroup应该是这样的
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);
}
}
在您的家长 Activity 中
View mview = getLocalActivityManager().startActivity(id,newIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)).getDecorView();
ABCGroup.group.replaceView(v);
在您的 child Activity 中使用
public boolean onKeyDown(int keyCode, KeyEvent event){
if (keyCode == KeyEvent.KEYCODE_BACK){
ABCGroup.group.back();
return true;
}
return super.onKeyDown(keyCode, event);
}
关于java - 如何在 TAB 应用程序中的子 Activity 上按后退按钮时返回父 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6491044/