Activity之间的数据传递

时间:2023-03-08 17:44:42

最常用的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()方法

相关文章