将对象传递给片段的正确方法?

时间:2015-08-24 10:41:15

标签: android android-fragments

我想将一个对象传递给片段 当对象不应该或不能在片段中重新创建时(例如LruCache)。

是否可以不使用static变量? 因为传递变量可能并不总是相同的对象

编辑: 为了清楚起见,我不希望在重新创建activity时对象为空

1 个答案:

答案 0 :(得分:1)

要将对象传递给片段,您应该使用界面查看this link

您也可以通过构造函数和getter以及setter传递对象,但是如果app resume对象可能为null,则会导致应用程序恢复NullPointerException

<强> 被修改

如果您正在使用LruCache并希望在片段中共享其数据。我建议你创建一个没有onCreateView()方法的片段,意味着它将是不可见的片段。在fragment中实现LruCache对象,并使用getter和setter从LruCache获取和设置所需的对象。

与简单类相比,片段具有可重用性的特征。您可以通过其标记找到一个片段。

例如:添加片段 -

activity.getFragmentManager().beginTransaction().add(fragment, TAG).commitAllowingStateLoss();

并获得一个片段 -

activity.getFragmentManager().findFragmentByTag(TAG);

与普通类相比,Fragment类仅在设备处于内存类型时才从内存中删除。每当片段为空时,您将不得不重新初始化它。

要详细了解其实施细节,请访问this link