java - Roboguice 正在注入(inject)不同的上下文

标签 java android dependency-injection android-fragments roboguice

我在 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/

相关文章:

android - 在 Android 中如何更改正在列表中搜索的特定字母/字符的颜色

javascript - Angular 中的在线/离线应用程序

delphi - 如何将参数从实例化器传递到 spring4d 依赖注入(inject)框架中的构造函数?

android - 如何将 Android(仪器)测试文件放在项目目录之外?

java - Spring Controller 重定向到另一个模块

java - 初学者帮助 : What is wrong with this method?

java - 有没有等同于 JaxRS 的 Scala

android - 如何在android中更改日期选择器对话框的默认年份(1900)?

c# - 与日志注入(inject)模块一起使用时在 Autofac 中显式解析 ILog

java - 在 sql 查询中使用 java.sql.Timestamp 对象