最常用的Activity之间的数据传递。
btnStartAty1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i=new Intent(MainActivity.this, Activity1.class);
//Activity之间的数据传递
//i.putExtra("txt", "这是第一种Activity间的数据传递方法");
Bundle data=new Bundle();
data.putString("txt", "这是第二种Activity间的数据传递方法"); i.putExtras(data); //startActivity(i);
//如果想要接收Activity1返回的数据,这里就不能用startActivity
startActivityForResult(i, 0);
}
});
这是MainActivity.java中吧要传递的数据放在data中,命名为txt
btn_out2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//以下3行是大数据传递,也是最常见的Activity间的数据接收方法
Bundle data=getIntent().getExtras();
String txt=data.getString("txt2");
tv_out.setText(txt);
}
});
这是接收传递过来的数据的方法。
btnCloseAty1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i=new Intent();
i.putExtra("result","result from Aty1 family!");
setResult(0,i); finish();
//执行结束Aty1。
}
});
这是Aty1中要返回的数据。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
String result=data.getStringExtra("result");
tv_out_result.setText(result);
}
这是接受返回的数据。(
//要接收从Aty1传回的数据必须用StartActivityForResult()这个方法
//不能继续用StartActivity()方法
)