2011-08-31 88 views
3

我的A類調用startActivityForResult:A級是的ActivityGroup在tabactivity的一個標籤如何從活動返回結果(startActivityForResult)到TabHost活動?

Intent intent = new Intent(this, ClassB.class); 
startActivityForResult(intent, "STRING"); 

ClassB的是一個共同的活動,而不是在tabactivity,它是單獨

Intent intent = this.getIntent(); 
intent.putExtra("SOMETHING", "EXTRAS"); 
this.setResult(RESULT_OK, intent); 
finish(); 

但在類一個onactivityResult沒有收到任何,不excute.if我把classA從tabactivity,我的應用程序是好的。我已閱讀

How to setResult() for a TabActivity which contains activity for tabs

How to return a result (startActivityForResult) from a TabHost Activity?

但不解決我的問題,有人可以在給一些建議,代碼是越多越好,謝謝

編輯: A類我補充一下:

public class UpdateImageBroadcastReceiver extends BroadcastReceiver { 
     @Override 
     public void onReceive(Context context, Intent intent) { 

      Log.i("temp","34353"); 


     } 
    } 



    /* (non-Javadoc) 
    * @see android.app.Activity#onPause() 
    */ 
    @Override 
    protected void onPause() { 
     // TODO Auto-generated method stub 
     super.onPause(); 
     unregisterReceiver(updateImageBroadcastReceiver); 

    } 

    /* (non-Javadoc) 
    * @see android.app.Activity#onResume() 
    */ 
    @Override 
    protected void onResume() { 
     // TODO Auto-generated method stub 
     super.onResume(); 

     updateImageFilter = new IntentFilter("ACTION_CHANGE_TAB"); 
     updateImageBroadcastReceiver = new UpdateImageBroadcastReceiver(); 
     registerReceiver(updateImageBroadcastReceiver, updateImageFilter); 


    } 
在B類

Intent intent = new Intent("ACTION_CHANGE_TAB"); 
         intent.putExtra("path", f.getAbsolutePath()); 
         sendBroadcast(intent); 

        // FileListSelectActivity.this.setResult(RESULT_OK, intent); 
         finish(); 

但我無法打印:Log.i(「temp」,「34353」);

回答

1

嘗試使用廣播接收器。您可以在活動B改寫的onStop(),廣播從活動B中的事件和活動A.

+0

我會嘗試,但當活動b結束時,您的代碼可以更新我的ui – pengwang

+0

您可以隨時廣播活動,例如onPause。沒有限制。 – superM

+0

明天我會試試你的方法,謝謝 – pengwang

1

不知道它是否是最好的方法,但是目前我使用一個我稱之爲內存的類來在活動之間傳遞對象。

public class Memory { 
    public static Object objectToPass = null; 
} 
+0

謝謝你給我一些建議,但通過我可以得到的價值,但如何更新UI,你知道在onactivityResult當收到resultok,它可以更新UI,我cannoy再次startactivity類一個 – pengwang

1

我無法找到確切問題沒有源代碼的聽,但它可能是明年形勢一個

1 )tabhost的根活動未收到onActivityResult。那麼你應該在TabHost中的Activity中調用overriden onActivityResult

2)另一種情況:tabhost中的Activity沒有收到onActivityResult。只有重點活動纔會收到ActivityGroup內的任何操作。你應該把重點放在它的一些視圖上,然後你會收到行動。

+0

謝謝你我會嘗試第二種方法,謝謝 – pengwang

+0

我發現聚焦是在tabactivity上,如何讓A類的視圖得到聚焦? – pengwang

+0

例如,您可以爲根活動設置android:focusableInTouchMode =「true」android:focusable =「true」。但你應該請求重點手冊在切換標籤 –

相關問題