2017-01-13 1 views
-3

Wenn bekam ich den Wert 30 stattAndroid - Way Daten ohne Absicht passieren

des Schreibens

Aktivität 1:

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

Aktivität 2:

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

Aktivität 3:

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

und so weiter, yo Du hast die Idee. Der Grund dafür ist, dass bestimmte Werte an Aktivität 1 übergeben werden müssen. Wenn Aktivität 1 beendet ist, wechseln Sie mit diesen Werten zu Aktivität 2.

Gibt es einen Universal Intent Store, den ich anrufen kann?

+0

Warum lieber nicht verwenden 'SharedPreference' den gleichen Wert vorbei in fast deiner Tätigkeit? Sie können auch statische Variablen verwenden (obwohl dies problematisch ist, wenn sie nicht richtig gehandhabt werden). – Enzokie

+1

Wenn der Wert auch nach dem Schließen der App beibehalten werden soll, verwenden Sie SharedPreference. Wenn Sie es nur benötigen, um den Wert beizubehalten, während die App geöffnet wird, ist ein statischer Wert ausreichend. – kggoh

Antwort

0

Verwendung SharedPreference wird gut in diesem Fall:

Daten speichern

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); 

Get Daten bei ActivityN nach 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