我在使用roboguice将模块注入我的课程时遇到了问题。我将 roboguice_modules.xml 添加到 src / main / res / values
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="roboguice_modules">
<item>com.androidclient.guice.BindingModule</item>
</string-array>
</resources>
我的 BindingModule 看起来像这样
public class BindingModule extends AbstractModule {
@Override
protected void configure() {
bind(FooIf.class).to(FooImpl.class);
}
}
这就是我将 FooImpl 注入我的课程
的方法@Inject
FooIf foo;
我在这里做错了什么?
答案 0 :(得分:0)
您的MainActivity必须扩展RoboFragmentActivity而不是FragmentActivity。所有类然后使用注入必须扩展一些类的Roboguice库,因为有时会发生魔术,即:RoboFragment,RoboActivity,RoboAsyncTask,RoboBroadcastReceiver等。注入发生在onCreate方法上的setContentView方法之后,在那个调用方法之后,你的变量被注射。
您可以使用此代码:
public class MainActivity extends RoboFragmentActivity
{
@Inject
FooIf foo;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Here you can use foo variable
}
}