情景假设:
activity1跳转到activity2,销毁activity2,返回到activity1并返回数据。
步骤1:
activity1跳转到activity2要用startActivityForResult(intent, requestCode)方法
步骤2:
activity2要返回的数据用intent包裹起来,再用setResult(RESULT_OK, intent)方法,向activity1传递intent
步骤3:
在activity1中,复写onActivityResult(int requestCode, int resultCode, Intent data)方法,获取数据。
public class FirstActivity extends Activity {
private Button bt1;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.first_activity);
init();
}
private void init() {
bt1 = (Button) findViewById(R.id.bt1);
bt1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.putExtra("firstActivity", "我是第一个activity传来的数据");
startActivityForResult(intent, 1);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case 1:
if (resultCode==RESULT_OK) {
int intExtra = data.getIntExtra("secondActivity", -1);
Toast.makeText(FirstActivity.this, intExtra+"", Toast.LENGTH_SHORT).show();
// System.out.println(intExtra);
}
break;
default:
break;
}
}
}
public class SecondActivity extends Activity {
int resultCode = 177;
private Button bt2;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.second_activity);
init();
}
private void init() {
Intent intent = getIntent();
final String stringExtra = intent.getStringExtra("firstActivity");
Toast.makeText(SecondActivity.this, stringExtra, 0).show();
bt2 = (Button) findViewById(R.id.bt2);
bt2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent2 = new Intent();
intent2.putExtra("secondActivity", 177);
setResult(RESULT_OK, intent2);
finish();
}
});
}
}