2016-06-12 69 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;