【发布时间】:2015-01-26 19:41:34
【问题描述】:
希望你们能帮我澄清一些事情。
我已经使用 Android 大约 6 个月了,但我仍然对在 Activity 和 Fragments 之间进行通信的最佳方式感到困惑。我已经阅读了android developer site 上的信息。
片段到活动
现在我 100% 确定地知道,接口是从 Fragment 到 Activity 进行通信的最佳方式。 IE。在您的 Fragment 中创建一个接口并让您的 Activity 实现它。这样您就可以从 Fragment 中的接口调用该方法,并由 Activity(实现该接口)处理它。
Activity 到 Fragment
这是我不确定的。 android 开发者网站说,为了与 Fragment 进行通信,您必须将对象放在 Bundle 中。
Bundle bundle = new Bundle();
bundle.putInt(SOME_IDENTIFIER, myInt);
现在我知道当我有相当多的功能可以分离时,我会时不时地使用 Singleton 类。假设我有一个名为 PersistenceService 的 Singleton,我在其中处理所有与持久性相关的东西,例如在SharedPreferences 中保存一些东西。然后PersistenceService 将保存putMyString(String key, String myString) 或putSomeObject(String key, SomeObject someObj) 之类的方法。这样一个类就不必自己处理持久性,而只需调用PersistenceService 即可。
现在说我必须更新我的 Fragment、TextView 或其他东西。 我就是这样做的:
String myString = PersistenceService.getInstance(getActivity()).getMyString(someKey);
textView.setText(myString);
我传入一个上下文 (getActivity()),因为我需要它来获取 SharedPreferences。
现在我的实际问题是:
我是否在 Activity 中检索我的数据并通过其 Bundle 将其传递给所需的 Fragment?还是我只是在 Fragment 中直接引用我的 Singleton 并直接访问那里的数据。
我没有卡住或其他任何事情,但我想知道你们会推荐什么。 非常感谢任何建议、评论、信息等。
【问题讨论】:
标签: android performance android-activity android-fragments communication