Jak powiązać z dostawcą, który używa wartości adnotacji w Guice?
Czy istnieje sposób powiązania z dostawcą, który interpretuje wartość adnotacji celu w Google Guice?
Przykład:
bind(Resource.class)
.annotatedWith(MyAnnotation.class)
.toProvider(new MyProvider<MyAnnotation, Resource>{
public Resource get(MyAnnotation anno){
return resolveResourceByAnnoValue(anno.value());
}
});
Chcę zainicjować pole klasy aktywności systemu Android według powiązanego opisu. Powinien mieć wiele zasobów według unikalnego identyfikatora.
Oryginalny sposób:
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...
...
}
Chcę powiązać interfejs użytkownika i jego pole w sposób deklaratywny, a nie powyżej pragmatycznie:
@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;
...
}