2016-12-02 36 views
0

我是新的片段活動,我的情況是我已經實現了支付網關併成功獲得了活動結果。我確認活動是片段,所以當我在活動結果在onActivityResult接收到的結果從支付網關成功後或失敗的PG的條件如何轉移到confirmationFragment我使用android.app.Fragment; 和我PaymentActivity如何從活動轉移到片段onActivityResult

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"); 
     } 
    } 
} 

的代碼在 這上面的代碼我有一些條件,所以根據這些條件我必須移動片段。

我有一些confrimationFragments。我希望你能理解或者給我更好的辦法做到

我的主要活動代碼

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"); 
    } 
} 

感謝

+0

的使用,如果使用App.v4.Fragment IM appv4.Fragment –

+0

我必須改變整個應用程序 –

+0

然後使用界面或事件總線 –

回答

1

您必須在MainActivity.Java寫onActivityResult()如下

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

之後你的onActivityResult在片段被調用。

+0

感謝@mehul但getChildFragmentManager()是「無法解析方法「因爲即時通訊使用android.app.Fragment –

+0

然後你必須改變android.app.Fragment到app.fragment vs v4.app.fragment。和getChildFragmentManager()到getSupportFragmentManager(); –