2017-06-22 40 views
0

假設我在我的android項目中有5個活動。當我點擊活動1中的一個按鈕時,我插入一個額外的數據並以下面的形式被帶到活動2中。我可以爲整個應用程序獲取Android意圖額外數據嗎

Intent intent = new Intent(this, Activity2.class); 
intent.putExtra("MY_KEY", "MY_DATA_FOR_WHOLE_APP"); 
startActivity(intent); 

這樣,我只能在活動2.使用MY_KEY數據,但我想用在其他activites(2,3,4,5)這個數據。除了SharedPreferences和數據庫之外,是否有任何方法可以獲取此信息。

回答

0

活性1

Intent intent = new Intent(this, Activity2.class); 
intent.putExtra("MY_KEY", "MY_DATA_FOR_WHOLE_APP"); 
startActivity(intent); 

活性2

Intent intent = new Intent(this, Activity3.class); 
intent.putExtra("MY_KEY", getIntent().getStringExtra("MY_KEY")); 
startActivity(intent); 
0

您可以創建一個 '助手' 類,這可能是廠家爲意圖類似如下:

import android.content.Intent; 

public class IntentHelper { 

    public static final Intent createYourIntent(Intent src) { 
     return new Intent("YourIntent").addCategory("YourCategory").putExtras(src); 
    } 
} 

這將是工廠爲您的所有意圖。每當你需要一個新的Intent,在IntentHelper中創建一個靜態工廠方法。您可以創建一個新的意圖是這樣的:

IntentHelper.createYourIntent(getIntent()); 

在您的活動,當你想保存在一個會話(同SharedPreferences)的一些數據只是使用以下命令:

IntentHelper.createYourIntent(getIntent()).putExtra("YOUR_FIELD_NAME", fieldValueToSave); 

,並將其發送意圖。在目標活動的領域將作爲:

getIntent().getStringExtra("YOUR_FIELD_NAME"); 
0

創建一個數據類

public class Data { 
private String name; 
private static Data instance = null; 

public static getInstance(){ 
if(instance!=null){ 
return instance; 
}else{ 
instance = new Data(); 
return instance; 
} 
} 

public void getName(){ 
return name; 
} 
public void setName(String name){ 
this.name = name 
} 
} 

訪問它的任何活動,片段

Data.getInstance().setName("John"); 
String name = Data.getInstance().getName(); 
相關問題