그건 아마도 내 질문의 일부입니다.RoboGuice의 어떤 버전이 Android SDK 8에서 작동합니까?
기본적으로 나는 1.1.2 버전의 실제 주입에 어려움을 겪고 있습니다. 사이트의 몇 페이지를 읽었으며 뭔가를 놓친 것 같습니다.
기본적으로 RoboApplication 확장을 수행했습니다. addApplicationModules 메소드를 오버라이드했습니다. 나도 모듈을 만들었 어.
내 모듈은 다음과 같습니다 : 내가 거기하지 않으면
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 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 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 및 플래시/액션 배경에서 온 플러스 I은 (는 .NET 세계에서) 대신해서 Ninject의 StructureMap을 사용한 적이 있다는 것입니다
, 나는 Guice가 Ninject의 아이디어 중 일부를 염두에두고 설계되었다고 들었다. 누군가가이 작은 조각을 알아낼 수있게 도와 줄 수 있습니까?
RoboGuice의 2.x로 점프하는 대신 1.1.2를 사용하는 데 집중하고 싶습니다. 아직 베타 버전이므로 특히 신경 쓰지 않기를 바랍니다.
다시 한 번 감사드립니다, 켈리
위 정보가 업데이트되었습니다. 아래에서, 나를 도와 준 Konstantin Pribluda에게 감사드립니다. getInstance 메소드에 대해 그렇게 걱정하지 않지만, 모듈이로드되지 않거나 데이터가 누락 된 이유는 무엇입니까? – KellyTheDev