2012-06-12 61 views

回答

1

在完成C活動之前,您可以在您的A活動中使用廣播接收器d可以直接發送從C到A的廣播。

從A.起始活性B該代碼將從活動接收數據C.

BroadcastReceiver brd_receiver = new BroadcastReceiver() { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     if (intent.getAction().equals("receive data from C")) { 
      // DO YOUR WORK HERE. 
     } 

    } 
}; 

registerReceiver(brd_receiver, new IntentFilter("receive data from C")); 

寫入這個代碼從活動c。發送數據到活動A.

Intent intent = new Intent(); 
     intent.setAction("receive data from C"); 
     intent.putExtra(name, value); //SAVE YOU DATA INTO INTENT. 
     sendBroadcast(intent); 
之前寫下面的代碼

希望它會幫助你,如果它不工作,然後告訴我你面臨的問題。我認爲它應該工作。

+0

是的,這真的很有幫助,謝謝。 –

0

如果您通過Intent的startActivity從A轉到C,那麼您可以通過意圖的putExtra傳遞數據。如果您只是通過按回去進入C,然後將數據寫入某些常見位置(如共享首選項),以便您可以從A

+0

謝謝您的回答。 –

0

您可以使用Handler將數據從一個活動傳遞到另一個活動或者您可以使用startActivityForResult()開始每個活動。然後通過使用setResult(resultCode, data),您可以將額外的數據傳遞給上一個可以通過功能onActivityResult(int requestCode, int resultCode, Intent data)訪問的活動。

+0

這個答案可以解決我的問題,但我需要改變所有論文的活動,所以我不認爲這是一個好的解決方案。 –

0

試試這個;;

在活動ç..

Intent intent = new Intent(getBaseContext(), A.class); 
intent.putExtra("Your_key-ID", value); 
startActivity(intent); 

在活動一..

Intent sender=getIntent(); 
String extraData=sender.getExtras().getString("Your_key-ID"); 

,如果你想通過在C一些數據,檢查此鏈接

http://mobileorchard.com/android-app-development-using-intents-to-pass-data-and-return-results-between-activities/

+0

@Leoguo是你的問題解決嗎? –

+0

上面的代碼將從活動C開始一個新的活動A,我認爲它不正確。 –

1

創建一個類並將其設置爲Singleton類。然後使用setter和getter方法來設置一個類的值並從其他類獲取值。

public class SingletonObjectDemo { 
private String value; 
// use setter and getter here... 


private static SingletonObject singletonObject; 
// Note that the constructor is private 
private SingletonObjectDemo() { 
    // Optional Code 
} 
public static SingletonObjectDemo getSingletonObject() { 
    if (singletonObject == null) { 
     singletonObject = new SingletonObjectDemo(); 
    } 
    return singletonObject; 
} 

}

+0

我認爲這個答案可以解決我的問題,但我更喜歡使用android的唯一功能,所以我會使用BroadcastReceiver。謝謝你的回答。 –

+0

@Leoguo如果它解決了你的問題,那麼你可以將這個答案標記爲Accepted所以這對其他人會有幫助。 –

相關問題