可以使用意图轻松地将捆绑包传递给新活动:
Intent intent = new Intent(this, DisplayMessageActivity.class);
Bundle b = new Bundle();
// add extras...
intent.putExtras(b);
startActivity(intent);
是否可以使用Bundles(或类似)将数据发送到主要活动?
Application类创建before任何活动,我想用它将数据发送到主活动。 我不希望全局访问数据,或者在主活动上使用静态方法将数据传递给它。
答案 0 :(得分:1)
由于您已经掌握了应用程序,我只想用它来创建一个应用程序变量 -
public class MyApplication extends Application {
private String someVariable;
public String getSomeVariable() {
return someVariable;
}
public void setSomeVariable(String someVariable) {
this.someVariable = someVariable;
}
}
你必须在清单中声明这样的类:
<application android:name="MyApplication" android:icon="@drawable/icon" android:label="@string/app_name">
然后在接收器Activity:
// set
((MyApplication) this.getApplication()).setSomeVariable("foo");
// get
String s = ((MyApplication) this.getApplication()).getSomeVariable();
正如杰夫吉尔菲尔特所解释的那样: Android global variable
答案 1 :(得分:1)
您是否考虑过暂时使用SharedPreferences,然后删除新活动的onCreate中的SharedPreferences数据。
一些示例代码:
活性1:
SharedPreferences prefs = getSharedPreferences("mydata", 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("secretstring", "asdasdasdqwerty");
editor.commit();
活性2:
SharedPreferences prefs = getSharedPreferences("mydata", 0);
String savedString = prefs.getString("secretstring", "");
SharedPreferences prefs = getSharedPreferences("mydata", 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("secretstring", "nope");
editor.commit();
第二种可能性是对公共变量使用getter和setter,但只通过检查要求它的类来将正确的变量返回给主类。
希望这有帮助:)。