这里首先说明一下startActivityForResult与startActivity的不同之处:
startActivity:
它是跳转到目标界面,可以通过finish()或者startActivity返回当前界面
代码如:
从A界面跳转到B界面
从B界面返回A界面只需要一个finish();
或者是
Intent intent = new Intent(LYL_WoShouChu.this,A.class);
startActivity(intent);
startActivityForResult:
它与startActivity差不多,但是它返回可以有finish(),也可以在finish()上面进行传参数,setResult内就必须写上int类型的参数
代码如:
Intent intent = getIntent();
intent.putExtra("size", zan_data.size());
setResult(1, intent);
finish();
它与startActivity不同的是,它返回当前界面会触发onActivityResult(),我们可以在这个方法内改变数据与界面的变化
代码:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==1&&resultCode==1){
int size=data.getIntExtra("size",0);
shoucang_num.setText(size+"");
}
}
A界面跳转B界面的代码:
Intent intent_shoucang = new Intent(getContext(), SJ_Activity_WD_ShouCang.class);
startActivityForResult(intent_shoucang,1);
殴,对了,startActivityForResult在A界面跳转到B界面时,一定要带int类型的参数,这个在onActivityResult方法内可以通过你A界面的requestCode与resultCode的参数来筛选出你的代码,省的多个在一起搞混了。
这些也是我写了一些startActivityForResult方法,可是总是忘记了,返回时传参代码要怎么写,+_+。
虽然这些网上查找下有很多,但是我觉得把自己理解的写一遍还是有一定的好处的。
O(∩_∩)O哈哈~,写着我突然想起我同事了,它可是要跟我一起更新技术博客的,啧啧啧