Как связать с провайдером, который использует значение аннотации в Guice?
Есть ли способ связать с поставщиком, который интерпретирует значение аннотации цели в Google Guice?
Пример:
bind(Resource.class)
.annotatedWith(MyAnnotation.class)
.toProvider(new MyProvider<MyAnnotation, Resource>{
public Resource get(MyAnnotation anno){
return resolveResourceByAnnoValue(anno.value());
}
});
Я хочу инициализировать поле класса Android Activity с помощью аннотированной привязки. Он должен занять несколько ресурсов по своему уникальному идентификатору.
Оригинальный способ:
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...
...
}
Я хочу связать пользовательский интерфейс и его поле декларативным способом, а не прагматически, как выше:
@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;
...
}