3.通过全局对象传递数据
如果想使某些数据长时间驻留内存,以便程序随时调用,建议采用全局对象。Application全局类不需要定义静态变量只要定义普通成员变量即可,但全局类中必须有一个无参构造方法,编写完Application类后,还需要在<application>标签中制定全局类名,否则系统不会自动创建全局对象。
public class MainApplication extends Application {
private String username;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
public class MainActivity extends Activity {
private MainApplication application;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
application = (MainApplication) getApplication();
application.setUsername("sunzn");
}
public void open(View view) {
Intent intent = new Intent(this, OtherActivity.class);
startActivity(intent);
}
}
public class OtherActivity extends Activity {
private TextView tv_data;
private MainApplication application;
private String username;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_other);
application = (MainApplication) getApplication();
username = application.getUsername();
tv_data = (TextView) findViewById(R.id.tv_data);
tv_data.setText("从上一个 Activity 中获取到的数据为:" + username);
}
}
三、从Activity返回数据
要从Activity返回数据,需要使用startActivityForResult方法来显示Activity。
从Activity1跳转到Activity2:
Intent intent = new Intent();
intent = intent.setClass(ActivityIntent.this, AnotherActivity.class);
Bundle bundle = new Bundle();
bundle.putString("string", et_string.getText().toString());
intent.putExtras(bundle);
startActivityForResult(intent,0); //只有这里不同
从Activity2返回数据到Aactivity1:










