活动A使用以下代码调用ActivityB
28-05-2016 12:53:19
28-05-2016 12:53:19
活动B通过以下方式调用活动c:
startActivityForResult(new Intent(context, ActivityB), 1);
我用返回结果完成了活动C并开始新的活动D
startActivityForResult(new Intent(context, Activityc), 2);
我想在获取返回结果
上完成活动A和活动B.但我没有得到返回结果。在这种情况下
startActivity(new Intent(context, ActivityD);
setResult(RESULT_OK, new Intent());
finish();
总之我想要这个功能
onActivityResult no calling in Activity A and Activity B
我只得到两者之一。它的下一个活动或回归结果。我希望同时返回返回结果的下一个活动。
答案 0 :(得分:0)
可能您没有设置requestCode,这就是您遇到此问题的原因,请尝试这种方式
public final static int GO_FOR_COUNTRY = 11;
public final static int GO_FOR_STATE = 12;
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.register_country:
Intent intents=new Intent(Registration.this,CountryList.class);
startActivityForResult(intents, GO_FOR_COUNTRY);
break;
case R.id.register_state:
Intent intentstate=new Intent(Registration.this,StateList.class);
intentstate.putExtra("cids",cid);
startActivityForResult(intentstate, GO_FOR_STATE);
break;
default:
break;
}
并在你的OnActivityResult
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK) {
switch (requestCode)
{
case GO_FOR_COUNTRY:
try {
//your stuff
} catch (Exception e) {
e.printStackTrace();
}
break;
case GO_FOR_STATE:
try {
//your stuff
} catch (Exception e) {
e.printStackTrace();
}
break;
}
}
}
答案 1 :(得分:0)
我试图解决我的问题,但我无法找到任何地方。实际上Android活动并不是全部启动活动并同时返回结果集。所以我需要以替代方式管理它。