0

mapsforge を使用して、携帯電話にマップを表示しようとしています。

現在、表示ピンにオーバーレイを追加することに関して、少し問題があります。これはエラーを与えるコードです:

ArrayItemizedOverlay itemizedOverlay = new ArrayItemizedOverlay(defaultMarker, true);
myOpenMapView.getOverlays().add(itemizedOverlay);

ここで述べたように、getOverlays() は List を返します。

この行は次のエラーを返します:

 "The method add(Overlay) in the type List<Overlay> is not applicable for the arguments (ArrayItemizedOverlay)"

ArrayItemizedOverlay クラスは Overlay クラスのサブクラスであるため、この場合 .add() メソッドが無効である理由がよくわかりません。

これらはクラス定義であり、.add() メソッドがオブジェクトを受け入れるようにできることを誰かが教えてくれることを願っています。

ArrayItemizedOverlay

public class ArrayItemizedOverlay extends ItemizedOverlay<OverlayItem> {
    //codes....
}

ItemizedOverlay

public abstract class ItemizedOverlay<Item extends OverlayItem> extends Overlay {
    //codes...
}

必要な情報が不足している場合は、遠慮なく指摘してください。ありがとう!

4

2 に答える 2

2

使用されている calsses とインターフェイスの完全なパスを見つけることができましたか?

public List<Overlay> getOverlays()

のリストを返します

public interface org.mapsforge.android.maps.overlay.Overlay

しかし、コードベースには別のオーバーレイ クラスがあります

public abstract class Overlay extends Thread {

クラスパスに古いバージョンはありますか? おそらく、古い JAR/API をクリーンアップして、正しいオーバーレイ クラスを参照していることを確認する必要があります。

于 2013-03-27T10:33:57.117 に答える
0

オブジェクトのコレクションを追加するには、List のaddAll()メソッドを使用します。

于 2013-03-27T10:21:52.183 に答える