代码之家  ›  专栏  ›  技术社区  ›  Jaimin Modi

活动回调中的Fragment方法未调用

  •  0
  • Jaimin Modi  · 技术社区  · 5 年前

    我做了如下工作:

    在活动中实现侦听器作为 MyCallBack.MyListener

    在活动中初始化它,如下所示:

    App.Manager.myCallback?.myListener(this)
    

    以下是实施的方法:

    override fun onGettingData(data: MyData) {
    
            var fragment1 = supportFragmentManager.findFragmentById(R.id.container) as Fragment1
            if (fragment1 != null && fragment1.isVisible) {
                fragment1.onDataReceived(data)
            }
    
            var fragment2 = supportFragmentManager.findFragmentById(R.id.container) as Fragment2
            if (fragment2 != null && fragment2.isVisible) {
                fragment2.onDataReceived(data)
            }
        }
    

    但是我片段中的这个方法没有被调用。

    0 回复  |  直到 5 年前
        1
  •  0
  •   Jaimin Modi    5 年前

    解决方案:

    for (fragment in supportFragmentManager.fragments) {
            if (fragment is Fragment1) {
                fragment.onDataReceived(data)
            } else if (fragment is Fragment2) {
                fragment.onDataReceived(data)
            }
        }
    
    推荐文章