如果我想将相同的数据发送到多个Activity 例如这段代码:
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)
如果您想将发送数据存储到其他第二,第三,第四屏幕等。那么我认为最好将它们保存在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
答案 1 :(得分:0)
是的,这很容易。将所有数据放入bundle中,然后在下一个activity中获取bundle并再次输入用于启动第三个活动的新intent。
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"));
希望它能奏效:)
答案 2 :(得分:0)
您可以使用 Java Singleton设计模式在没有共享首选项的情况下实现此目的: -
从任何类/活动/片段中设置UserName,如下所示
//Set user name
SessionManager.getInstance().setFirstName("UserName");
在任何类/活动/片段中获取UserName,如下所示
//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;
}
}
答案 3 :(得分:0)
一个简短的方法就是这样。在课堂上使用static
个变量。
创建班级助手
public class Helper {
public static String FIRST_NAME;
public static String LAST_NAME;
}
这样设置 Helper.FIRST_NAME =&#34;富&#34 ;; 像这样的接受
String someName=Helper.FIRST_NAME;