2013-09-10 2 views
2

Я хочу включить кинжал в приложение для Android. У меня есть два класса FakeServiceConnector, NetServiceConnector который реализует ServiceConnector интерфейсандроидный кинжал не может обеспечить инъекцию

Так что я положил код в моей деятельности

@Inject 
ServiceConnector serviceConnector; 

Абд создать провайдера для разрешающих зависимостей

@Module 
public class ServiceConnectorProvider { 

@Provides 
@Singleton 
public ServiceConnector provideServiceConnector() 
{ 
    return new FakeServiceConnector(); 
} 
} 

Но когда я нажимаю кнопку serviceConnector, имеет значение null. Так что мои вопросы:

1) Я включаю в свои библиотеки только кинжал-1.1.0.jar и java.inject.jar Достаточно ли для правильной установки кинжала?

2) Нужно ли мне писать больше кода, чем я написал для кинжала, таких как создание Android

ответ

4

Да, вам нужно написать больше кода для сделать его работу.

Сначала вы должны указать в модуле, какой класс вы хотите, чтобы ввести:

@Module(
    injects = YourClass.class 
) 

После того, как вы должны делать инъекции:

ObjectGraph objectGraph = ObjectGraph.create(new ServiceConnectorProvider()); 
YourClass yourClassObject = objectGraph.get(YourClass.class); 

или:

ObjectGraph objectGraph = ObjectGraph.create(new ServiceConnectorProvider()); 
YourClass yourClassObject = new YourClass(...); 
objectGraph.inject(yourClassObject); 

Берут посмотрите основные примеры here или here или выполните поиск GitHub для большего количества из них.

Смежные вопросы