实现从Activity1打开Activity2。当Activity2关闭的时候,我们需要它返回一些数据给Activity1
1.Activity1:
private int REQUEST_CODE = 0;
//启动Activity2
rlSettingIcon.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(Activity1.this, Activity2.class);
startActivityForResult(intent, REQUEST_CODE);//REQUEST_CODE
是一个必须大于或等于0的整数,不知道为什么...
}
});
//从Activity2返回的时候,靠这个方法接收数据
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
System.out.println("onActivityResult------------");
if(requestCode == REQUEST_CODE)
{
if(resultCode == RESULT_OK)
{
Bundle extras = data.getExtras();
if (extras != null)
{
if(extras.getString("name").equals(""))//设置姓名
{
tvName.setText("未命名");
}
else
{
tvName.setText(extras.getString("name"));
}
}
}
2.Activity2
btnOk.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Bundle bundle = new Bundle();
bundle.putString("name", etName.getHint().toString());
Intent intent = new Intent();
intent.putExtras(bundle);//用Intent保存对象
setResult(RESULT_OK, intent);
finish();
}
});