为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 onAcitivtyResult 进入一些片段 int Android

如何使用 onAcitivtyResult 进入一些片段 int Android

ITMISS 2022-07-20 15:42:08
在我的应用程序中,我有一个activity(MainActivity)和一些fragments(ServicesFragment,NewAddressFragment)。ServicesFragment用于显示此内容viewPager,NewAddressFragment用于显示! 在这个我使用过,但在其中一个中的一个不调用代码中发生冲突。 我写了下面的代码,请看这个。主要活动 :getFragmentManager().replace ...fragmentsfragmentsonActivityResultfragments onActivityResultfragments@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {    Fragment servicesFrag = bottomNavAdapter.getItem(mainViewPager.getCurrentItem());    if (servicesFrag instanceof ServicesFragment) {        ((ServicesFragment) servicesFrag).onActivityResult(requestCode, resultCode, data);    }}服务片段:@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) {    Log.e("BazaarPaymentLog", "Result");    Log.e("BazaarPaymentLog", "bazaarRequestCode : " + bazaarRequestCode);    if (iabHelper == null) return;    if (requestCode == bazaarRequestCode) {        String purchaseData = data.getStringExtra("INAPP_PURCHASE_DATA");        if (resultCode == RESULT_OK) {            try {                JSONObject jo = new JSONObject(purchaseData);                purchaseToken = jo.getString("purchaseToken");                productId = jo.getString("productId");                packageName = jo.getString("packageName");                Log.e("BazaarPaymentLog", "purchaseToken : " + purchaseToken);                if (iabHelper != null) {                    iabHelper.handleActivityResult(requestCode, resultCode, data);                }            } catch (JSONException e) {                e.printStackTrace();            }        }    } else {        super.onActivityResult(requestCode, resultCode, data);    }}在、调用代码和非调用代码中编写onActivityResult代码时。MainActivityServicesFragment onActivityResultNewAddressFragment onActivityResult但是当删除onActivityResult代码时MainActivity,ServicesFragment 不是调用 onActivityResult代码和NewAddressFragment 调用 onActivityResult代码。我该如何解决?
查看完整描述

3 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

在 MainActivity 的 onActivityResult 里面使用这个:


而不是这个: -


@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {

Fragment servicesFrag = bottomNavAdapter.getItem(mainViewPager.getCurrentItem());

if (servicesFrag instanceof ServicesFragment) {

    ((ServicesFragment) servicesFrag).onActivityResult(requestCode, resultCode, data);

}

}


用这个 :-


@Override

protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {


    for(Fragment fragment : getSupportFragmentManager().getFragments()){

        fragment.onActivityResult(requestCode,resultCode,data);

    }


}

让我知道它是否有效


查看完整回答
反对 回复 2022-07-20
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

请将此行添加到活动中的 onActivityResult


    Fragment servicesFrag = bottomNavAdapter.getItem(mainViewPager.getCurrentItem());

 Fragment addressFrag = findFragmentByTag("NewAddressFragmentTag");

 if (servicesFrag instanceof ServicesFragment) {

 ((ServicesFragment) servicesFrag).onActivityResult(requestCode, resultCode, data);

 }

 if (addressFrag instanceof NewAddressFragment) {

 ((NewAddressFragment) addressFrag).onActivityResult(requestCode, resultCode, data);

 }

 }


查看完整回答
反对 回复 2022-07-20
?
喵喔喔

TA贡献1735条经验 获得超5个赞

我可以解决我的问题!

使用以下代码更改 MainActivity 代码:


@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    Fragment servicesFrag = bottomNavAdapter.getItem(mainViewPager.getCurrentItem());

    Fragment addressFrag = getSupportFragmentManager().findFragmentByTag("NewAddressFragmentTag");

    if (servicesFrag instanceof ServicesFragment) {

        ((ServicesFragment) servicesFrag).onActivityResult(requestCode, resultCode, data);

    }


    if (addressFrag instanceof NewAddressFragment) {

        super.onActivityResult(requestCode, resultCode, data);

    }

}

我希望对另一位亲爱的开发人员有所帮助


查看完整回答
反对 回复 2022-07-20
  • 3 回答
  • 0 关注
  • 143 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号