Como ligar com provedor que usa valor de anotação no Guice?
Existe alguma maneira de vincular ao provedor que interpreta o valor de anotação do destino no Google Guice?
Exemplo:
bind(Resource.class)
.annotatedWith(MyAnnotation.class)
.toProvider(new MyProvider<MyAnnotation, Resource>{
public Resource get(MyAnnotation anno){
return resolveResourceByAnnoValue(anno.value());
}
});
Quero inicializar o campo de uma classe de atividade do Android por ligação anotada. Deve ter vários recursos pelo seu ID único.
Caminho Original:
public class TestActivity extends Activity{
private TextView textView;
private Button testButton;
public void onAfterCreate(...){
// set UI declaration resource.
setContentView(R.layout.activity_test);
// initialize fields, it must be done after setting ui definition.
textView = (TextView) findViewById(R.id.textView);
.... initialize other fields, hook them...
...
}
Eu quero vincular a interface do usuário e é campo de forma declarativa, não gosta pragmaticamente acima:
@ResourceID(R.layout.activity_test)
public class TestActivity extends InjectiveActivity{
@ResourceID(R.id.textView) // Auto generated static resource id constant
private TextView textView;
@ResourceID(R.id.testButton)
private Button testButton;
...
}