简体   繁体   English

如何从onActivityResult从Activity移到片段

[英]How to move from Activity to Fragment from onActivityResult

I am new in Fragment activity and my situation is i have implemented payment gateway and successfully got result on Activity. 我是Fragment活动的新手,我的情况是我已经实现了支付网关,并在Activity上成功取得了结果。 My confirmation activity is in fragment so when i received result from payment gateway in activity result in onActivityResult after success or failed condition of PG how to transfer to confirmationFragment I am using android.app.Fragment; 我的确认活动是分段的,因此当我从付款网关收到付款结果时,在PG成功或失败的情况下,活动结果导致onActivityResult如何转移到ConfirmationFragment我正在使用android.app.Fragment; and my code of PaymentActivity 和我的PaymentActivity代码

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

    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == PayUmoneySdkInitilizer.PAYU_SDK_PAYMENT_REQUEST_CODE) {





        if (resultCode == RESULT_OK) {
            Log.i(TAG, "Success - Payment ID : " + data.getStringExtra(SdkConstants.PAYMENT_ID));
            String paymentId = data.getStringExtra(SdkConstants.PAYMENT_ID);

        } else if (resultCode == RESULT_CANCELED) {
            Log.i(TAG, "failure");
            showDialogMessage("cancelled");
        } else if (resultCode == PayUmoneySdkInitilizer.RESULT_FAILED) {
            Log.i("app_activity", "failure");

            if (data != null) {
                if (data.getStringExtra(SdkConstants.RESULT).equals("cancel")) {

                } else {
                    showDialogMessage("failure");
                }
            }
            //Write your code if there's no result
        } else if (resultCode == PayUmoneySdkInitilizer.RESULT_BACK) {
            Log.i(TAG, "User returned without login");
            showDialogMessage("User returned without login");
        }
    }
}

In this above code i have some condition so according to these condition i have to move fragment. 在上面的代码中,我有一些条件,因此根据这些条件,我必须移动片段。

and i have some confrimationFragments. 我有一些confrimationFragments。 I hope you understand or give me better way to do 我希望你能理解或给我更好的方法

My main Activity code 我的主要活动代码

private void displayView(int position) {
    // update the main content by replacing fragments
    Fragment fragment = null;
    switch (position) {
        case 0:
            fragment = new HomeFragment();
            break;
        case 1:
            fragment = new BuyActivity();

            break;
        case 2:
            fragment = new SaleFragment();
            break;
        case 3:
            fragment = new MoneyFragment();
            break;
        case 4:
            //fragment = new CommunityFragment();
            break;
        case 5:
            //History
            fragment = new HistoryFragment();
            break;
        case 6:
            //about
            fragment = new AboutFragment();
            break;

        default:
            break;
    }

    if (fragment != null) {
        FragmentManager fragmentManager = getFragmentManager();
        fragmentManager.beginTransaction()
                .replace(R.id.frame_container, fragment).commit();

        // update selected item and title, then close the drawer
        mDrawerList.setItemChecked(position, true);
        mDrawerList.setSelection(position);
        setTitle(navMenuTitles[position]);
        mDrawerLayout.closeDrawer(mDrawerList);
    } else {
        // error in creating fragment
        Log.e("MainActivity", "Error in creating fragment");
    }
}

thanks 谢谢

You must write onActivityResult() in your MainActivity.Java as follows 您必须在MainActivity.Java中编写onActivityResult(),如下所示

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
for (Fragment fragment : getChildFragmentManager().getFragments()) {
    fragment.onActivityResult(requestCode, resultCode, data);
}
}

after this your onActivityResult in fragment is called. 之后,将调用片段中的onActivityResult

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM