1

Activity A 使用以下代码调用 ActivityB

startActivityForResult(new Intent(context, ActivityB), 1);

活动 B 通过以下方式调用活动 c:

startActivityForResult(new Intent(context, Activityc), 2);

我以返回结果完成活动 C 并在那里开始新的活动 D

startActivity(new Intent(context, ActivityD);
setResult(RESULT_OK, new Intent());
finish();

我想在获取返回结果时完成活动 A 和活动 B

但我没有得到返回结果。在这种情况下

onActivityResult no calling in Activity A and Activity B

总之我想要这个功能

btnGo.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent next = new Intent(ActivityC.this, ActivityD.class);
                startActivity(next);
                setResult(RESULT_OK, next);
                finish();

            }
        });

我只得到两者之一。它进行下一个活动或返回结果。我想同时返回返回结果的下一个活动。

4

2 回答 2

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;

            }



        }


    }
于 2016-05-28T12:24:43.073 回答
0

我试图解决我的问题,但我找不到任何地方。实际上,Android 活动并非都同时启动活动和返回结果集。所以我需要用另一种方式来管理它。

于 2016-06-01T05:09:39.740 回答