2014-08-28 30 views
-2

我似乎無法在任何地方找到它。這裏是問題:如何將數據發送到不屬於它的活動的片段?

我有一個片段A是來自活動A.該片段發射活動B.

我想從活動B發送到碎片A.如何做呢?

+1

發什麼?你試過什麼了? BroadcastReciver?服務?定製應用程序類?爲什麼你不把數據從活動B返回給A,然後讓活動A將它發送到片段A ... – Selvin 2014-08-28 15:09:03

+0

我正在考慮這樣做,是否有更直接的解決方案。問題是活動A可能在啓動B – mskw 2014-08-28 15:10:36

+0

後被破壞我嘗試使用持久性,其中在包中設置布爾值。但它看起來像一個黑客 – mskw 2014-08-28 15:11:27

回答

2

您可以嘗試使用'startActivityForResult()'。這將啓動該活動,然後完成後,它將允許您將一些數據返回到您重寫的片段中的回調函數。這裏有一個例子:

private void ActivityBStarter(){ 
    Intent i = new Intent(getApplicationContext(),ActivityB.class); 
    startActivtyForResult(i); 
} 
@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data){ 
    //use data.get... to get data from the activity. 
    //This is only called when the activity completes. 
} 

然後在活動中,當你要完成的活動,並將結果傳回做到這一點:或者

Intent returnIntent = new Intent(); 
returnIntent.putExtra("result",result); 
setResult(RESULT_OK,returnIntent); //RESULT_OK can really be any int you want. 
finish(); 

,您可以使用信使和消息傳遞來傳遞數據在ActivityB和Activity之間運行ActivityB,但這通常不會非常有用,除非您使用Service。

這裏有一個鏈接: Example: Communication between Activity and Service using Messaging

祝你好運!

相關問題