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