2010-04-06 118 views
7

我有一個class2這是由類1當涉及點擊時。我必須將class1中的一些參數/對象傳遞給class2。我只知道沒有傳遞參數選項的標準方式。Android:在類之間傳遞參數

// launch the full article 
Intent i = new Intent(this, Class2.class); 

startActivity(i); 

回答

14

您可以使用Intent.putExtra(它使用Bundle)來傳遞額外的數據。

Intent i = new Intent(this, Class2.class); 
i.putExtra("foo", 5.0f); 
i.putExtra("bar", "baz"); 
startActivity(i); 

然後,一旦你是你的新Activity內:

Bundle extras = getIntent().getExtras(); 
if(extras !=null) 
{ 
float foo = extras.getFloat("foo"); 
String bar = extras.getString("bar"); 
} 

這使您可以通過基礎數據的活動。但是,您可能需要更多工作來傳遞任意對象。

+1

這意味着只有簡單的類型(int,String,double)可以被傳遞但不是類?即使BigMap不能被傳遞? – Yang 2010-04-06 05:06:52

+0

您也可以傳遞可串行化和「可分類」的對象。 http://developer.android.com/reference/android/content/Intent.html 我會環顧四周,看看我能找到什麼讓傳遞對象更容易。一個考慮是在活動類上創建一個靜態字段,您可以在開始活動之前將其設置爲對象的引用。 – 2010-04-06 05:13:48

+0

使用旅行車。它使得它非常簡潔:https://github.com/beplaya/Wagon – beplaya 2014-03-18 22:23:24