【发布时间】:2022-01-04 03:17:36
【问题描述】:
我正在使用导航组件,它使用findNavController().navigate() 在片段之间导航。我想从MainActivity 中检索FragmentContainerView 中当前显示的片段,因为我想修改“编辑”按钮setOnClickListener 功能以执行“保存”功能(我已经知道如何将文本从编辑更改为保存)它检查当前显示的片段并相应地更改setOnClickListener 函数。所以在那个特定的片段中,它将执行“保存”功能。但是如何从MainActivity获取当前显示的片段呢?
我看到了很多其他解决方案,但他们都在使用FragmentTransaction,或者他们只是显示了获取当前片段的代码,但他们没有显示MainActivity 的哪个部分将启动获取当前片段的代码。有什么帮助吗?我正在使用 Kotlin。
【问题讨论】:
-
你的意思是“你怎么知道当前的片段是什么,因为我想根据我所在的片段来改变我的活动的 UI?”或者你是说你实际上是什么访问片段本身来调用它的方法等等?请说明您的编辑/保存按钮如何与您的活动和片段相关。
-
@ianhanniballake 我正在考虑做一个 if-else 语句来检查当前片段,
if(editFragment), button.setOnClickListener{code for edit}, else if(saveFragment), button.setOnClickListener(code for save)所以我需要在我的活动中知道片段才能执行此操作。或者有没有其他方法可以实现这一目标?因为我只实现了一个 Activity,并且“编辑/保存”在 Activity 中。
标签: android android-fragments android-architecture-navigation