2012-06-04 5 views
1

Если у меня есть класс с одним конструктором, как я могу заставить Roboguice ввести это в действие?Использование Roboguice для инъекции зависимости, которая не имеет конструктора по умолчанию

Сервис для инъекций:

public FlightManager(Context context){ 
    //do something with the context 
} 

Активность:

public class recordFlight extends RoboActivity { 

    @InjectResource FlightManager manager; 

    //whatever code here 
} 

Единственная зависимость является контекст, который я собираю следует вводить без проблем. Кроме того, все мои другие применения, такие как @InjectView и @Inject классов со стандартным конструктором, выглядят прекрасно, но использование выше убивает приложение, даже не давая мне трассировку стека.

Любые идеи?

Благодаря

Jon

ответ

3

Марк конструктор с аннотацией @Inject:

@Inject 
public FlightManager(Context context){ 
    //do something with the context 
} 

Затем вводят FlightManager так:

public class recordFlight extends RoboActivity { 

    @Inject FlightManager manager; 

    //whatever code here 
} 

@InjectResource не нужно здесь, так как это обычный Java-класс, который вы вводите, а не Android resou RCE.

+0

Спасибо, Билл, я узнал об атрибуте @_Inject для конструктора, но полностью не смог увидеть @_InjectResource там - это странно, поскольку я никогда не пытался вставить ресурс (только за использование Roboguice в течение часа!) –