想象这种情况:
FragmentA extends Fragment{
....
AdapterA adapter = new AdapterB(items);
...
}
FragmentB extends Fragment{
....
AdapterB adapter = new AdapterB(items);
...
}
FragmentC extends Fragment{
....
AdapterC adapter = new AdapterC(items);
...
}
FragmentD extends Fragment{
....
AdapterD adapter = new AdapterD(items);
...
}
所有这些片段都通过TabLayout显示。
[例如,当用户在FragmentD中完成操作时,应更新其他片段的适配器。
您认为对所有适配器执行此“通知”操作的最佳方法是什么?我正在考虑为这种行为实现观察者模式,但是我不知道是否有更好的方法可以做到这一点。
您可以使用观察者设计模式:
https://www.geeksforgeeks.org/observer-pattern-set-2-implementation/?ref=rp
您将需要提供3种方法的可观察对象:-订阅(可观察o)-退订(可观察到o)-notifyAll(Object updateObj)
然后是每个片段的一个Observer对象-它们应该具有'update(Object updateObj)'方法,以便在更改主题/可观察对象时作出反应。
首先,所有观察者/订阅者都应订阅可观察对象。更改片段时,可以调用可观察对象的notifyAll方法来通知其他片段