2017-01-13 2 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); 

и так далее, лет У тебя идея. Причиной является необходимость передачи определенных значений в Activity 1, а затем, когда выполняется действие 1, перейдите к Activity 2 с этими значениями.

Есть ли какой-либо универсальный магазин Intent, который я могу назвать?

+0

Почему бы не использовать 'SharedPreference', а проходя то же значение почти в вашей деятельности? Вы также можете использовать статические переменные (хотя это проблема, когда не обрабатывается должным образом). – 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); 

Получить данные в ActivityN после 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 
Смежные вопросы