私は RoboGuice の世界を探索しており、maps アクティビティを変更して、RoboGuice で動作するようにしました。これは RoboMapActivity であり、Application の拡張子を RoboActivity から継承するように変更しました。以下のように @InjectView を正常に使用しました。
public class MyMappingActivity extends RoboMapActivity {
@InjectView(R.id.mapview) MapView mMapView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView injects all of the @values listed above
setContentView(R.layout.main);
DgApplication.data.setmPathProfile(this);
List<Overlay> mapOverlays = mMapView.getOverlays();
//etc...
}
//etc...
}
今、私は ItemizedOverlay を作成しましたが、ここで立ち往生しています。私が追加しました
@Inject MyItemizedOverlay mMyItemizedOverlay;
MyMappingActivity で、MyItemizedOverlay の抽出は次のとおりです。
class MyItemizedOverlay extends ItemizedOverlay<OverlayItem> {
@Inject
public MyItemizedOverlay(Drawable marker) {
super(boundCenterBottom(marker));
}
}
私の問題は、コンストラクターにあるデフォルトのマーカーを ItemizedOverlay 親にフィードする必要があることです。依存性注入がコンストラクターでサポートされていないように見えるため、 @InjectResource を使用してそれを行うことができず、モジュールでの bind().to() の使用を調べましたが、これはデータではなくインターフェース用のようです種類。
@Inject を実行している MyMappingActivity で MyItemizedOverlay にパラメーターを定義する必要があるように感じます。これは、 new MyItemizedOverlay()を使用して渡さずにコンストラクター内から Android リソースを参照できないためです。
私の質問は 2 つあります。
まず、私は正しい道を進んでいますか?次に、MyItemizedOverlay のコンストラクタの問題をどのように解決すればよいですか?