I am new in Fragment activity and my situation is i have implemented payment gateway and successfully got result on 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;
and my code of 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. 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
答案 0 :(得分:1)
You must write onActivityResult() in your MainActivity.Java as follows
@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.