Java 当其他片段中的数据发生更改时,如何刷新recyclerview适配器?

Java 当其他片段中的数据发生更改时,如何刷新recyclerview适配器?,java,android,android-recyclerview,Java,Android,Android Recyclerview,第一个片段 private void initRecyclerView() { Main.musicList = Main.songs.songs; if ((Main.musicList != null) && (!Main.musicList.isEmpty())) { // Connects the song list to an adapter // (Creates several Layo

第一个片段

private void initRecyclerView() {
        Main.musicList = Main.songs.songs;
        if ((Main.musicList != null) && (!Main.musicList.isEmpty())) {
            // Connects the song list to an adapter
            // (Creates several Layouts from the song list)
            allSongsAdapter = new AllSongsAdapter(getActivity(), Main.musicList);

            final LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());

            recyclerViewSongs.setLayoutManager(linearLayoutManager);
            recyclerViewSongs.setHasFixedSize(true);
            recyclerViewSongs.setAdapter(allSongsAdapter);
   } 
}
在第一个片段中,我有一个recyclerview,其中显示了设备上找到的所有歌曲的列表,我可以选择删除一首歌曲,通过重新扫描设备上的所有歌曲来更改我的arraylistMain.musicList中的数据

因此,我应用程序中的所有其他ArrayList仍然有一个对已删除歌曲的引用


因此,当我删除第一个片段中的项目时,如何在其他片段中的所有recyclerview适配器上调用notifySetDataChanged?

简单的方法是使用
BroadcastReceiver
。尝试回答

  • 在保存这些片段的活动中使用ViewModel

  • 将歌曲列表包装到LiveData对象中。这是大家都可以看到的 根据片段的生命周期(当片段 在OnResume状态下,当您的列表 (已更改)

  • 在相关片段中,开始观察LiveData并继续 更改并更新适配器
  • 相关主题:
    希望我能帮助你

    您可以使用EventBus触发该方法,通过该方法将通知Reyccer view adapter