我正在Android应用程序上使用自定义上下文,并且正在使用Roboguice进行注入(我使用ActionBarSherlock,所以我使用robosherlock)

此自定义上下文使用的是调用onCreate时初始化的某些字段。

接下来,我有一个Fragment,其签名如下所示:

public class CustomFragment extends RoboSherlockListFragment


我尝试注入我的自定义上下文:

@Inject
private CustomContext mContext;


当我尝试使用getPrivateField()方法访问在CustomApplication的上下文上初始化的私有字段时,会得到null,就像上下文是新的一样,而不是重用旧的。

有人可以帮我吗?

谢谢!

最佳答案

我不知道您的CustomContext是如何工作的,但是当RoboGuice遇到没有特定绑定规则(模块中的@Inject行)的bind(CustomContext.class)批注时,它只会创建使用默认构造函数的新对象。

您可能应该创建一个自定义提供程序,其中包含从何处获取此特定CustomContext的逻辑。

07-24 19:02