2016-06-12 68 views
0

如果我想同樣的數據發送到一個以上的活動 例如下面的代碼:但意圖將數據發送到多個屏幕同時

Intent passDataToSomeScreen = new Intent(MainActivity.this, 
             Second_Screen.class); 
String first_name = etFirstName.getText().toString(); 
passDataToSecondScreen.putExtra("FIRST_NAME", first_name); 

String last_name = etLastName.getText().toString(); 
passDataToSecondScreen.putExtra("LAST_NAME", last_name); 

startActivity(passDataToSomeScreen); 

不是去第二個屏幕,我想送它也對第三屏幕,第四屏幕等等(併發...)比在每個屏幕上獲得相同的數據要高一個意圖嗎?

+0

你的意思是你想要一次啓動多個活動? –

+1

我認爲你在找的答案可以在這裏找到http://stackoverflow.com/questions/7885276/how-to-share-same-data-between-multiple-activities-in-android – Twahanz

+1

你有沒有試過廣播監聽器? – insomniac

回答

0

是的,很簡單。把所有的數據都捆綁在一起,然後在下一個活動中獲得捆綁包,並再次輸入用於啓動第三個活動的新意圖。

 Bundle bundle = new Bundle(); 
     bundle.putString("FIRST_NAME", first_name); 
     bundle.putString("LAST_NAME", last_name); 
     passDataToSecondScreen.putExtra("DATA", bundle); 

在下一屏:

 passDataToThirdScreen.putExtra("DATA", getIntent().getBundleExtra("DATA")); 

希望它會工作:)

1

如果你想存儲的數據發送到其他的第二,第三,第四屏等。然後我認爲其更好將它們保存在SharedPreferences中。

SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(getApplicationContext(),Context.PRIVATE); 

prefs.get<TYPE>(<KEY>,<DEFAULT VALUE>)//FOR STORING DATA 
prefs.edit().put<TYPE>(<KEY>,<VALUE>).apply();//FOR EDITING DATA 
0

您可以使用的Java Singleton設計模式實現這一點沒有共享偏好: -

設置用戶名從任何類/活動/片段這樣

 //Set user name 
    SessionManager.getInstance().setFirstName("UserName"); 

獲取任何用戶名class/Activity/Fragment like this

//Get username 
    String UserName = SessionManager.getInstance().getFirstName(); 

不要忘了清除會話時全部使用完成

//When you are done clear session 
    SessionManager.getInstance().flushSesion(); 

會話管理器CLAS是這樣

public class SessionManager { 
    private static SessionManager ourInstance = new SessionManager(); 

    private String firstName; 
    private String lastName; 

    public static SessionManager getInstance() { 
     return ourInstance; 
    } 

    private SessionManager() { 
    } 

    public String getLastName() { 
     return lastName; 
    } 

    public void setLastName(String lastName) { 
     this.lastName = lastName; 
    } 

    public void flushSesion() { 

     firstName = null; 
     lastName = null; 
    } 

} 
0

一個短的路可以是這樣。在課堂中使用static變量。 創建類助手

 public class Helper { 
       public static String FIRST_NAME; 
       public static String LAST_NAME; 

     } 

這樣設置 Helper.FIRST_NAME = 「富」; 這樣的接入

    String someName=Helper.FIRST_NAME;