2013-05-04 66 views
1

即時消息我的應用程序我使用TabHost。和ActivityGroup加載標籤下的活動。在我的第二個選項卡上,我打開activityGroup「TabGroupActivity」...並從這裏打開一個兒童活動「childActivity2」。從「childActivity2」我想打開一個具有主題對話框的正常活動。當我從正常活動返回時,我想在我的childActivity2中運行onActivityResult()。 但ChildActivity2中的onActivityResult()不起作用。OnActivityResult不適用於activityGroup

代碼其中childActivity2開始正常活動是

data.putInt("doctorId", doctor_id); 
       Intent createSchedule = new Intent(ScheduleWeekly.this, CreateSchedule.class).putExtras(data); 


       startActivityForResult(createSchedule, 1); 

這是我的onActivityResult()

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

     if(resultCode==Activity.RESULT_OK) 
     { Log.e("get","result"); 
      ................. 
         ...... 
     } 


    } 
+0

你應該使用自定義Listner出來這 – 2013-05-04 07:50:14

+0

我們如何做到這一點....任何示例代碼? – Vikky 2013-05-04 08:10:48

+0

我沒有得到你的想法...可以給我任何示例代碼... – Vikky 2013-05-04 08:43:22

回答

2

你的問題是和我一樣。問題在於onActivityResult函數不會直接從活動組中的子活動觸發,即使您的意圖來自該子活動。

該解決方案分爲三個步驟。

首先,您必須讓您的父級活動,即您的ActiviyGroup類在需要跳出當前活動的位置調用startActivityForResult函數。在你的孩子的活動,當你需要你的午餐正常活動,而不是撥打:

startActivityForResult(intent, 0); 

你應該叫:

getParent().startActivityForResult(intent,0); 

這將讓的ActivityGroup照顧呼叫的後部。在你的情況下,因爲你有三層嵌套,你可能需要嘗試父母或祖父母是否應該照顧回調並對getParent()部分進行適當的修改。其次,在你讓當前活動的父類開始意圖之後,你需要將onAcivityResult()函數添加到BOTH父類和當前子類中。在當前類中,您只需像現在一樣編寫普通的回調句柄消息。但在父類中,onActivityResult()函數將捕獲來自正常活動的回調並將意圖傳遞給當前類。

三,這一步是父onActivityResult類,該類中,您需要:

public void onActivityResult(int requestCode, int resultcode, Intent data) 
{ 
    super.onActivityResult(requestCode, resultcode, data); 
    switch (resultcode) 
    { 
    case RESULT_OK: 
     MyChildActivity CA = (MyChildActivity) getLocalActivityManager().getCurrentActivity(); 
     CA.onActivityResult(requestCode, resultcode, data); 
    } 
} 

正如你所看到的,在父母的ActivityGroup類的onActivityResult功能正好趕上回調,得到孩子活動,你需要跳到另一個活動,並將數據傳輸給它。您可能不需要在您的子活動中使用onActivityResult函數作爲步驟2中的狀態,但我認爲這是更好的方法。

希望得到這個幫助!

+0

amazine回答....非常感謝:) – ishu 2014-07-30 12:04:12