在多个界面跳转时,从后一界面结束时需返回此界面的值时。例如,activityA跳转到activityB时,
此时需要在关闭B界面将其值返回A界面时,可用到回传值得获取方法。
在activityA中调用startActivityForResult(intent,requestCode )方法,当点击跳转时调用此方法打开activityB,
其中requestCode为一常数,可自由设定。
另外需要重写onActivityResult(int requestCode, int resultCode, Intent data)方法,requestCode可看为将返回值返回哪一个界面,一般情况下可以不用
resultCode不同,可返回不同的值,data所对应的值
主要代码如下: activityA-----------
private TextView mGetIdTxt;
public void OnStartActivityBackValue(View v){
Intent intent = new Intent(this,BackValueActivity.class);
startActivityForResult(intent, ConstantInfo.NUM_BACK);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
switch (resultCode) {
case ConstantInfo.NUM_BACK_FIVE: //自定义常量
String getData = data.getStringExtra("BACKVALUE");
mGetIdTxt.setText(getData==null?"":getData);
break;
case ConstantInfo.NUM_BACK_SIX: //自定义常量
String getDataTwo = data.getStringExtra("BACKVALUETWO");
mGetIdTxt.setText(getDataTwo==null?"":getDataTwo);
break;
default:
break;
}
}
activityB--------------
public void onClickBackValue(View v){
Intent intent = new Intent(this, OnStartActivityExtraBundleA.class);
intent.putExtra("BACKVALUE", mBackValue.getText());
setResult(ConstantInfo.NUM_BACK_FIVE, intent); //借助此方法跳转
finish();
}
public void onClickBackValueTwo(View v){
Intent intent = new Intent(this, OnStartActivityExtraBundleA.class);
intent.putExtra("BACKVALUETWO", mBackValueTwo.getText());
setResult(ConstantInfo.NUM_BACK_SIX, intent);
finish();
}