我在 Android 应用程序上使用自定义上下文,并且使用 Roboguice 进行注入(inject)(我使用 ActionBarSherlock,所以我使用 robosherlock)
此自定义上下文使用一些在调用 onCreate 时初始化的字段。
接下来,我有一个 fragment ,其签名如下所示:
public class CustomFragment extends RoboSherlockListFragment
我尝试注入(inject)我的自定义上下文:
@Inject
private CustomContext mContext;
当我尝试使用 getPrivateField() 方法访问在 CustomApplication 的上下文中初始化的私有(private)字段时,我会得到 null,就像上下文是新的并且不重用旧的一样。
有人可以帮助我吗?
谢谢!
最佳答案
我不知道你的这个 CustomContext
到底是如何工作的,但是当 RoboGuice 遇到一个没有特定绑定(bind)规则的 @Inject
注解时(模块中的 bind(CustomContext.class)
行),那么它只是使用默认构造函数创建一个新对象。
您可能应该创建一个自定义提供程序,其中包含从何处获取此特定 CustomContext 的逻辑。
关于java - Roboguice 正在注入(inject)不同的上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14235950/