结果发布的片段开始活动的片段

时间:2018-08-31 08:54:21

标签: android android-activity kotlin

我有ParentActivity,其中包含 3个片段,附加在其ViewPagerAdapter上。然后,这些片段中的一个具有 2个其他片段(该片段内部的两个片段之间有2个按钮可切换)。

当我在这2个(子)片段之一中用startActivityForResult(newIntent, 201)创建意图时,当我在finish()ParentActivity内完成onActivityResult()的启动活动时,将返回requestCode 65737。怎么了?

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()
            }
        }
    }

这意味着onActivityResult()将在片段内调用刷新,该片段是该子片段的父片段。并且随着连锁反应,refreshDeliveryFragment()将调用这两个子片段之一来刷新其recyclerview数据。

1 个答案:

答案 0 :(得分:0)

这是答案

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

您应该更改:

startActivityForResult(newIntent, 201)

收件人:

getActivity().startActivityForResult(newIntent, 201)