2017-01-13 6 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 
関連する問題