0

I have ParentActivity containing 3 fragments attached to its ViewPagerAdapter. Then one of these fragments has 2 other fragments (there are 2 buttons switching between those fragments inside this fragment).

When I create intent with startActivityForResult(newIntent, 201) inside one of these 2 (sub)fragments, as I finish up that started activity by finish(), inside ParentActivitys, onActivityResult() will return requestCode 65737. What's wrong with it?

SubFragment

addAddressButton.setOnClickListener {
            val addressCreateActivityIntent = Intent(context, AddressCreationActivity::class.java)
            startActivityForResult(addressCreateActivityIntent, 201)
        }

ParentActivity

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)

        //addAddressActivity
        if (requestCode == 201){
            if (((pagerAdapter!!.getItem(1)) as OrderCartPaymentFragment).view != null){
                createLog("DeliveryAddress ", "RefreshingAddressData -> OrderCart")
                ((pagerAdapter!!.getItem(1)) as OrderCartPaymentFragment).refreshDeliveryFragmentData()
            }
        }
    }

That means, onActivityResult() will call refresh inside fragment which is parent fragment of that subfragment. And as chain reaction refreshDeliveryFragment() will call one of those 2 subfragments to refresh their recyclerview data.

martin1337
  • 2,384
  • 6
  • 38
  • 85

1 Answers1

0

here is the answer

https://stackoverflow.com/a/10564488/9313652

you should just change:

startActivityForResult(newIntent, 201)

to:

getActivity().startActivityForResult(newIntent, 201)

Arya
  • 94
  • 7