这可能是我的问题的一部分。RoboGuice的哪个版本适用于Android SDK 8?
基本上我正在为版本1.1.2的实际注入而苦苦挣扎。我已经阅读了该网站上的几页,我觉得我错过了一些东西。
基本上我已经完成了RoboApplication扩展。我重写了addApplicationModules方法。我甚至制作了一个模块。
我的模块如下所示:
public class DataRepository extends AbstractAndroidModule
{
@Override
protected void configure() {
/*
* This tells Guice that whenever it sees a dependency on a TransactionLog,
* it should satisfy the dependency using a DatabaseTransactionLog.
*/
bind(IDataBaseAdapter.class).to(DataBaseAdapter.class);
}
}
在我的适配器我有这样的:
public class DataBaseAdapter implements IDataBaseAdapter
{
private DataBaseHelper _dbHelper;
private SQLiteDatabase _db;
@Inject
protected static Provider<Context> contextProvider;
public DataBaseAdapter()
{
_dbHelper = new DataBaseHelper(contextProvider.get());
}
}
如果我不这样做在那里,那里是代码块到适当的地方居住......我在哪里关注注射器?
最后......我的应用程序有它像这样的注射:
public class MyApplication extends RoboApplication
{
public MyApplication()
{
super();
}
public MyApplication(Context context)
{
super();
attachBaseContext(context);
}
@Override
protected void addApplicationModules(List<Module> modules)
{
modules.add(new DataRepository());
}
@Inject
private IDataBaseAdapter adapter;
public IDataBaseAdapter getAdapter()
{
return adapter;
}
public void setAdapter(IDataBaseAdapter value)
{
adapter = value;
}
...
}
我试图用进样属性,如图所示。例如:
@Inject
private IDataProvider provider;
一对夫妇的为什么我失去的原因是,我来自一个.NET和Flash/ActionScript中的背景加上我只用StructureMap代替Ninject(在.NET世界)我听说过Guice的设计与Ninject的一些想法有关。有人能帮我弄清楚这一小块吗?
我真的很想专注于使用1.1.2而不是跳到RoboGuice的2.x版本,尤其是因为它仍处于测试阶段,所以我希望你们都不介意。再次
感谢, 凯利
我已更新上面的信息。从下面,并感谢Konstantin Pribluda帮助我,我并不担心getInstance方法,但为什么模块似乎没有加载或缺少数据。 – KellyTheDev