2010-11-24 72 views
9

嘗試從活動組開始活動時,似乎無法獲得任何結果。我已經在活動和活動組中加入了活躍的結果?具體來說,我試圖讓用戶從Intent.ACTION_GET_CONTENT中選擇一個照片/視頻,但我從來沒有收到任何迴應?我究竟做錯了什麼?來自ActivityGroup的startActivityForResult?

這裏是我如何調用代碼:

Intent pickMedia = new Intent(Intent.ACTION_GET_CONTENT); 
    pickMedia.setType("video/*"); 
    startActivityForResult(pickMedia,12345); 

任何想法?

+0

Steven, 您能否通過代碼提供一些更清晰的意思?謝謝! – Jon 2011-08-25 06:32:33

+0

Jon - 看起來Nagkeeran用我的方法解決了他的問題。他發佈了一些示例代碼:http://stackoverflow.com/questions/6992142/android-wait-for-another-activity-result-it-didnt-work – 2011-09-16 20:07:54

回答

41

我有類似的問題。我有一個ActivityGroup管理子活動。其中一項子活動稱爲類似的外部意圖(在我的應用程序外部)。它從未在啓動它的子活動中調用onActivityResult。

我終於想通了/記得這個問題是因爲Android只會允許一個嵌套的子活動層......即,子活動不能嵌套子活動。爲了解決這個問題:

  1. 呼叫getParent().startActivityForResult()從子活動
  2. 你的父母(在的ActivityGroup)將能夠處理onActivityResult。所以我創建了ActivityGroup的子類並處理了onActivityResult
  3. 如果需要,您可以將該結果重新路由回子活動。只需通過getLocalActivityManager().getCurrentActivity()即可獲得當前活動。我的子活動繼承自定義活動,因此我在該子類中添加了handleActivityResult(requestCode, resultCode, data),以便ActivityGroup進行調用。
+1

我有同樣的問題,我不能理解請能你解釋一下 – Dharmendra 2011-07-01 11:22:16

4

在你的父活動

protected void onActivityResult(int requestCode, int resultCode, Intent intent){ 
    if (requestCode == YOUR_REQUEST_CODE) { 

     CHILD_ACTIVITY_NAME activity = (CHILD_ACTIVITY_NAME)getLocalActivityManager().getCurrentActivity(); 

     activity.onActivityResult(requestCode, resultCode, intent);}} 

所以,你的子女活動的onActivityResult運行。

相關問題