2017-01-13 1 views
-3

나는안드로이드 - 의도하지 않고 데이터를 전달하는 방법

활동 1 쓰는 30 대신 값을 가지고있는 경우 :

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로 이동해야하기 때문입니다.

내가 호출 할 수있는 유니버설 의도 저장소가 있습니까?

+0

에서 onCreate() 후 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); 

왜 SharedPreference` 오히려 같은 값을 전달`사용하지

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 
관련 문제