2011-01-19 54 views
5

我是Android新手。
我必須開始一個新的活動。通常,我會寫下面的代碼:
Android - 如何從實例開始新活動

Intent i = new Intent(Activity1.this, Activity2.class); 
Activity1.this.startActivity(i); 

,但現在我需要從該活動的一個實例啓動一個新的活動(因爲我不希望啓動類型的一般活動,我需要調用他的構造函數來定義他的屬性)。類似這樣的:

Activity2 instance = new Activity2(parameters); 
Intent i = new Intent(Activity1.this, instance); 
Activity1.this.startActivity(i); 

這可能嗎?

+0

「(因爲我不希望啓動類型的一般活動,我需要打電話給他的構造函數來定義他的屬性)「 - 這在Android中不可行。 – CommonsWare 2011-01-19 16:14:54

回答

9

我認爲你最好爲你的意圖添加一個包,並閱讀信息。你用這個包傳遞你的參數。

例如:

Intent myIntent = new Intent(this, BlipImageSender.class); 
    Bundle paramets = new Bundle(); 

paramets.putString("YOUR_PARAM_IDENT","your_parameter_value"); 

myIntent.putExtras(paramets); 
this.startActivity(myIntent); 

和類:

String your_param_value = getIntent().getExtras().getString("YOUR_PARAM_IDENT"); 
+0

非常感謝你nanne,它與經典Java非常不同!然而,我得到一個NullPointerException在我的類的OnCreate方法中使用「sendInfo.getString(key)」...我通過將其替換爲「(String)this.getIntent()。getExtras()。get(key)」 – Oneiros 2011-01-19 16:44:07