2014-01-16 1 views
0

Активность полей:INJECT зависимостей в мнениями с roboguice

public class MyActivity extends RoboActivity { 
    @InjectView(R.id.my_view) 
    protected MyView myView; 

    @Inject 
    private MyDependency myDependency; 

    // onCreate etc 
} 

Просмотр полей:

public class MyView extends FrameLayout { 
    @Inject 
    private MyDependency myDependency; 

    // constructors etc 
} 

Проблема в том, как myView и myDependency впрыскивают в деятельности, но myDependency не вводится в вид. Зачем?

ответ

1

Представления создаются по платформе Android, а не Roboguice. Вы можете использовать Injector.injectMembers для ввода элементов представления, но я бы попытался избежать зависимостей Guice от просмотра.

+0

Не странно ли, что «@ InjectView» от Roboguice не вводит зависимости автоматически с помощью инжектора? Тем не менее, когда я называю 'injectMembers' вручную, он действительно работает. Почему я должен избегать этого? – fracz

+0

Это не странно, потому что поведение представления не должно зависеть от того, имеет ли связанное с ним действие '@ InjectView'. Представление должно работать везде, где указано в XML. –

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