很長一段時間以來,我都遇到過將變量從一個活動傳遞給另一個活動的麻煩,而且我通常必須解決一些相當醜陋的靜態類黑客才能使其工作。將活動意圖的參考傳遞給
一般來說,我沿着一個靜態方法的行來說明一下,我用Activity的類型以及Activity所需的變量來調用它。這些被存儲在一個靜態變量中,並在所述活動的構造函數中被檢索。
就像我說的,挺醜的。並沒有像「myActivity.StartActivity(新活動);」這樣的東西。所有StartActivity的重載都採用Intent或typeof(MyOtherActivity)。
所以我的問題是,我完全誤解了活動的概念,還是我簡單地錯過了一個完全明顯的方法來傳遞參數給他們?
@編輯:我想傳遞一個對象的實際引用,而不是簡單的對象的副本的原因是因爲我試圖從覆蓋的活動傳遞一個視圖模型,到新的活動。當然,對這個視圖模型所做的任何更改都應該反映在父活動上,這隻有在兩個活動的視圖模型指向相同的實例時纔有可能。
我正在使用Xamarin.Android編寫應用程序,但C#和Java之間的代碼幾乎完全相同,所以在這兩種語言中的答案都很好。
可能的重複http://stackoverflow.com/questions/2091465/how-do-i-pass-data-between-activities-in-android – dsharew
部分屬實。您提供的鏈接上的答案解答瞭如何將基本值類型(如整數和字符串)移動到單獨的Activity,但不知道如何傳遞實際的引用對象,例如我自己的自定義類型的對象。 – Falgantil
爲你搜索它。 http://stackoverflow.com/questions/2736389/how-to-pass-object-from-one-activity-to-another-in-android – dsharew