如何让片段A知道片段B中的按钮被按下

有点复杂,但我会尽力解释。我有3个碎片。第一个片段(NoteFragment)保存所有笔记的回收器视图。当我单击“添加注释”按钮(即第一个片段中的此按钮)时,第二个片段 (AddNoteFragment) 将打开。第三个片段 (RemoveNoteFragment) 是我单击其中一个笔记后出现的片段。(我在 NoteAdapter 中有一个监听器)。

第一个片段和第二个片段出现在同一帧布局中。在第二个片段中,我有一个按钮,只要单击它,我就想删除该注释(从回收器视图和 firebase - 请参阅我如何执行此操作的代码)。

我想要什么 ?我希望一旦我单击RemoveNoteFragment内的IVremoveNote,我的NoteFragment就知道这一点,并且我可以在其中执行操作(在NoteFragment中)。

或者,如果您有其他删除笔记的解决方案,我很想听听。

请注意,为了删除注释,我使用注释适配器内的侦听器,该侦听器接受键数组列表位置。


慕森王
浏览 87回答 3
3回答

慕侠2389804

你可以做的一件事是在NoteFragment中创建一个方法,然后在按下RemoveNoteFragment中的IVremoveNote时调用该方法。在此方法中,您可以添加删除节点/行的功能。提示!- 您可以在方法参数中传递注释/行信息。我希望它有帮助。

有只小跳蛙

希望这些片段由同一活动托管。您可以通过以下方式从片段调用活动的方法((YourActivityClassName)getActivity()).yourPublicMethod();您可以在那里编写逻辑来调用片段方法、侦听器或其他内容

小怪兽爱吃肉

您应该真正考虑使用架构组件中的 LiveData 和 ViewModel 来实现您的目的,这是 Google 推荐的设计模式。它需要一些时间来掌握它的窍门,但您几乎可以将它用于每个应用程序,这将使您的问题变得非常简单。基本上从您的 Firebase 数据库查询所有注释以接收 LiveData> allNotes然后,您可以观察 LiveData allNotes 以获取列表并将其设置到您的 RecyclerView。这样,您的回收器视图中将始终拥有最新数据。当您从数据库中删除注释时,它会自动更新列表并将其显示在 recyclerview 中。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java