【1】在A界面开启B,C界面 使用 startActivityForResult()方法
//点击按钮跳转到联系人页面
public void add(View v) {
Intent intent = new Intent(this, ContactActivity.class);
//就是简简单单开启Activity
// startActivity(intent);
//当开启页面后 我还需要开启页面给我返回数据 就使用下面这个方式去开启Activity
startActivityForResult(intent, 10);
}
//点击按钮跳转到短信发送模板页面
public void insert(View v) {
Intent intent = new Intent(this, SmsTemplateActivity.class);
startActivityForResult(intent, 20);
}
【2】在B界面获取数据进行返回
String p = contactArrayList.get(position).getName();
//创建意图对象
Intent intent = new Intent();
//设置 键值对
intent.putExtra("phone", p);
//返回设置标签
setResult(1,intent);
finish();
【2】C界面获取数据进行返回
String object = objects[position];
Intent intent = new Intent();
intent.putExtra("context", object);
setResult(2,intent);
finish();
【3】在开启页面接收数据:用onActivityResult()父类方法
//当开启另外一个Activity页面 开启的这个页面关闭的后,会执行onActivityResult
@Override
protected void onActivityResult(int requestCode, int resultCode,Intent data) {
/*if (resultCode == 1) {
//说明数据是从联系人页面返回的
String phone = data.getStringExtra("phone");
et_number.setText(phone);
}else if (resultCode == 2) {
//说明数据是从短信模板页面返回
String smscontent = data.getStringExtra("smscontent");
et_content.setText(smscontent);
}*/
if (requestCode == 10) {
//代表我要请求联系人页面的数据
String phone = data.getStringExtra("phone");
et_number.setText(phone);
}else if (requestCode == 20) {
//就代表我要请求短信模板页面的数据
String smscontent = data.getStringExtra("smscontent");
et_content.setText(smscontent);
}
}
我们可以用在startActivityForResult(intent, 20); 设置的20当做数据回调的标签也可以用setResult(2,intent); 中的2当做标签进行判断