如何将函数作为参数传递到目标片段-Android导航组件



我有一个扩展DialogFragment的类,我想把它用作导航图中的目的地,这样我就可以像打开任何其他片段一样打开它。我想将函数作为参数传递给DialogFragment类,以便在正按钮和负按钮侦听器中使用。在这种情况下,它们将是来自调用Fragment的函数。

那么,是否可以将函数作为参数传递给导航组件目标,或者是否有其他方法可以实现这一点。DialogFragment是否需要自己的ViewModel?

正如@CommonsWare所建议的那样,我最终做到这一点的方式是拥有一个共享的ViewModel。

ViewModel设置如下:

class ViewModel(application: Application) : AndroidViewModel(application) { }

它是这样实例化的,在使用它的两个片段中都使用requireActivity(),以确保它充当一个单例,因为这些片段共享一个父活动。

val viewModel = ViewModelProvider(requireActivity()).get(ViewModel::class.java)

最新更新