我有一个实现RealmChangeListener
的片段A,你可以从片段A到片段B.在片段B上你可以改变一些数据,然后在popBackStack()
/ backPressed
我想要片段A来反映片段B上所做的更改。是否清楚了?
场景
但在最后一步中,我只看到旧客户名称。当我再次去片段B时,我终于可以看到新的名字,然后在另一个反对片段A上我也看到了新的名字。
问题:为什么我在FIRST从片段B返回到片段A后不能立即显示新名称?
如果您想查看一些代码,请随时问我。
修改
不,这不是因为我没有更新UI ...导航回片段A后,再次查询域以获取新数据。
答案 0 :(得分:0)
这是你的声音所带来的问题。
解决方案是您需要更新UI以反映您对Realm对象X所做的更改。您可以在片段A的onResume()方法中执行此操作。这里您要从Realm读取新数据对象X并相应地更新UI。
简而言之,您的数据对象已经更新,只是您没有显示这些新数据,因为您很可能在片段A的onCreate()方法中填充了UI。当您向后导航时,不会再次调用此数据来自片段B的片段A。
答案 1 :(得分:0)
您需要在onCreateView()
中注册RealmChangeListener并将其分离到onDestroyView()
,但问题是当您将新片段添加到另一个片段之上时,将调用onDestroyView()
。
因此不会调用您的RealmChangeListener。在向其添加RealmChangeListener之前,您应该在onCreateView()
中重新初始化查询。
另外,请确保保留对结果的字段引用。