2017-01-13 48 views
-3

如果我得到的值30 而不是寫的Android - 的方式來傳遞數據,而不意圖

活動1的:

Intent i = new Intent(this, Activity2); 
i.putExtras("number", 30); 

活動2:

Intent i = getIntent(); 
int number = i.getStringExtras("number"); 
i.putExtras("number", 30); 
i = new Intent(this, Activity3); 

活動3:

Intent i = getIntent(); 
int number = i.getStringExtras("number"); 
i.putExtras("number", 30); 
i = new Intent(this, Activity4); 

等等,喲你明白了。原因是需要將某些值傳遞給活動1,然後在完成活動1時,使用這些值移至活動2。

是否有某種我可以撥打的Universal Intent商店?

+0

爲什麼不使用'SharedPreference'而傳遞相同的值後獲得的ActivityN數據幾乎在你的活動?你也可以使用靜態變量(雖然在處理不當的時候有問題)。 – Enzokie

+1

如果您希望在應用程序關閉後仍然維護該值,請使用SharedPreference。如果你只是需要它來保持應用程序打開時的值,那麼靜態值就可以。 – kggoh

回答

0

使用SharedPreference會擅長這種情況下:

保存數據

SharedPreferences pre = getSharedPreferences("share_preference_file_name", MODE_PRIVATE); 
SharedPreferences.Editor edit=pre.edit(); 
edit.putInt("number", 30); 
edit.commit(); 

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

的onCreate()

SharedPreferences pre = getSharedPreferences("share_preference_file_name", MODE_PRIVATE); 
SharedPreferences.Editor edit=pre.edit(); 
edit.getInt("number", 0); // 0 is a default number if no value on given key