intent transfer data 传递数据
1.1 to 2
String data="Hello second";
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
intent.putExtra("extra_data", data);
startActivity(intent);
second
Intent intent=getIntent();
String data=intent.getStringExtra("extra_data");
Log.d("SecondAct",data);
2.2 to 1
startActivityForResult()
Intent intent = new Intent(FirstActivity.this,
SecondActivity.class);
startActivityForResult(intent, 1);
这个1 是请求码,与之后的case 对应上了。
Button button_back = (Button) findViewById(R.id.button_5);
button_back.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent();
intent.putExtra("data_return", "Hello Firstvalue");
setResult(RESULT_OK,intent);
finish();
}
});
使用 startActivityForResult来启动SecondActivity的,所以在SecondActivity被销毁后悔回调到上一个活动的onActivityResult()方法,所以需要在FirstActivity中重写这个方法来得到返回的数据。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case 1:
if (resultCode == RESULT_OK) {
String returnedData = data.getStringExtra("data_return");
Log.d("firstActivity", returnedData);
}
break;
default:
}
}
如果是通过返回键
onBackPressed()
@Override
public void onBackPressed(){
Intent intent=new Intent();
intent.putExtra("data_return","hello First");
setResult(RESULT_OK, intent);
finish();
}