今天 在做一个快递选择地址的功能需要这样的情况. 切换选择收货地址的功能. 下图我是从京东上截图的,把货物添加到购物车上,然后选择地址.
效果图
从左往右数,称为MainActivity,AActivity,BActivity. 他们的流程是下面这样样走的
直接选择地址就是走这样的流程.
MainActivity--->AActivity---->MainActivity
如果我没有设置地址或者地址需要修改,我就需要走这样的流程
MainActivity--->AActivity--->BActivity---->AActivity----->MainActivity
所以这里我做了一个demo:
流程1.直接选择地址就是走这样的流程. MainActivity--->AActivity---->MainActivity
从MainActivity到AActivity,关键代码
@OnClick(R.id.btn_next)
public void onClick() {
Intent intent = new Intent(MainActivity.this, AActivity.class);
startActivityForResult(intent, TYPE_A);
}
然后AActivity回到MainActivity关键代码
private void backMainActivity(String text) {
Intent intent = new Intent();
intent.putExtra(FORM_ACT, text);
setResult(RESULT_OK, intent);
finish();
}
流程2. 如果我没有设置地址或者地址需要修改,我就需要走这样的流程 MainActivity--->AActivity--->BActivity---->AActivity----->MainActivity
从MainActivity到AActivity,关键代码 同流程1,就不说了
从AActivity到BActivity
Intent intent3 = new Intent(AActivity.this, BActivity.class);
startActivityForResult(intent3, B_ACTIVITY);
从BActivity到AActivity
private void backAActivity(String text) {
Intent intent = new Intent();
intent.putExtra(AActivity.FORM_ACT, text);
setResult(RESULT_OK, intent);
finish();
}
然后AActivity回到MainActivity关键代码,
if (RESULT_OK == resultCode) {
if (B_ACTIVITY == requestCode) {
String str = data.getStringExtra(FORM_ACT);
backMainActivity(str);
}
}
这里需要注意一下,我是返回到了AActivity中,再执行了返回MainActivity