13

我是Android开发新手。如何完成孩子活动中的父母活动

我创建了一个主Activity( - > A),它有4个按钮。 4个按钮之一是EXIT按钮。

我开始另一个活动( - > B),点击EXIT按钮。这会通过'A'活动的意图打开'B'活动。

活动'B'包含 - 你想退出吗?是 - 按钮&无按钮。

如果我给完成(),onclick按钮 - 它退出'B'Activity。我想完成'B'&'A'。

我甚至试过A.finish() - >这不会被识别并导致语法/语义错误。

我很感谢这里的帮助。

P.S:我正在使用Android-2.2版本的手机,我不喜欢使用ActivityManager来解决这个问题。

回答

36

尝试与

startActivityForResult(intent, REQUEST_EXIT); 

启动子活动在孩子活动

case R.id.quit: 
    setResult(RESULT_OK, null); 
    finish(); 

在父活动

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (requestCode == REQUEST_EXIT) { 
     if (resultCode == RESULT_OK) { 
      this.finish(); 

     } 
    } 
} 
+0

这有帮助 - 非常感谢! – sudhishkr 2012-03-19 07:46:14

+0

如果父活动没有出现,这是否奏效?我的意思是我有一个开始另一项活动的按钮。在此按钮上单击我也wonna完成当前活动及其父项 – hasan83 2014-01-22 12:51:49

+0

此方法将在父项活动中使用startActivityForResult启动子项活动的时间内工作,并且onActivityResult在父项中定义。 – 2017-01-06 21:25:19

6

活动使用startActivityForResult()在一个公正的finish()活动A.在活动B A用于启动活动B和onActivityResult()上按下按钮只是finish()活动B

+0

谢谢乔治已经解释过 - 我已经使用他的代码段进入我的。 – sudhishkr 2012-03-19 07:47:52

5

您可以从子活动完成父活动像...

In Parent ....

startActivityForResult(new Intent(Parent.this, Child.class), ACTIVITY_CONSTANT); 

并重写Parent中的OnActivityForResult(...)方法。

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // TODO Auto-generated method stub 
    super.onActivityResult(requestCode, resultCode, data); 
    if(requestCode == ACTIVITY_CONSTANT) 
    { 
     finish(); 
    } 
} 

当您在子活动上调用finish()时,它也完成了父项。

+0

谢谢 - 它的工作原理 – sudhishkr 2012-03-19 07:47:17