1.MainActivity.java:
Button button1=(Button)findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String data="Hello SecondActivity";
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
//启动第二个Activity
//intent.putExtra("extra_data",data);
//startActivity(intent);
//第二种方式:SecondActivity返回数据
//获得返回数据重写onActivityResult()方法
startActivityForResult(intent,1);//请求码
}
});
2.SecondActivity.java:
Button button2=(Button)findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent1=new Intent();
intent.putExtra("data_return","Hello MainActivity");
setResult(RESULT_OK,intent);
finish();//销毁当前活动
}
});
3.MainActivity.java重写onActivityResult()方法:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//requestCode:启动活动时传入的请求码
//resultCode:返回数据时传入的处理结果
//data:携带着返回数据的Intent
switch (requestCode){
case 1:
if(resultCode==RESULT_OK){
String returnedData=data.getStringExtra("data_return");
Log.d("FirstActivity",returnedData);
}
break;
default:
}
}
4.如果在第二个活动中不是点击按钮事件,而是通过Back键返回上一层,在SecondActivity.java中添加Back键按下事件,方法内代码不变:
//Back返回键事件
@Override
public void onBackPressed() {
Intent intent=new Intent();
intent.putExtra("data_return","Hello MainActivity");
setResult(RESULT_OK,intent);
finish();//销毁当前活动
}