【问题标题】:Activity/Fragment to Activity/Fragment to Activity/FragmentActivity/Fragment 到 Activity/Fragment 到 Activity/Fragment
【发布时间】:2013-09-18 12:39:55
【问题描述】:

寻找解决此问题的最佳做法。

Activity1 包含带有有效产品微调器的 Fragment1

Activity1 包含一个操作栏菜单选项“产品”,它启动包含 Fragment2(列表片段)的 Activity2。

您可以在 Fragment2 中使用 Activity3/Fragment3 添加/编辑产品。

在 Fragment3 中所做的更改我正在使用 ActivityResult 回到 Fragment2,我知道我也可以使用接口实现相同的效果。

问题是:将 Fragment 3 中所做的更改反映在 Fragment1 微调器中的最佳方法是什么?

我知道我可以在 onResume() 中重新加载 Fragment1 中的微调器值,但如果我没有在 Fragment3 中进行任何更改,这将是不必要的。

【问题讨论】:

  • ContentProvider + Loaders 会为你做这件事:)
  • 感谢您的建议,尽量避免这种情况,因为它比我需要的更复杂。

标签: android android-fragments


【解决方案1】:

我会使用观察者模式。用类似的东西实现一个接口

public void onInputChanged(yourStuff);

让您的第一个 Fragment 实现此接口并将 Fragment 添加到侦听器池。

并从发生更改的 Activity 中执行类似

的操作
EventManager.fireOnInPutChanged(yourData)

EventManager 将成为您的听众注册的呼叫。

这样,您将不需要 Activity forResult,并且您始终知道是否发生了变化。

【讨论】:

  • 感谢您的回复,但不知道如何实施。你能给我举个例子吗?
猜你喜欢
  • 1970-01-01
  • 2019-10-26
  • 1970-01-01
  • 2018-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-27
  • 1970-01-01
相关资源
最近更新 更多