如何从主活动中的不同类调用方法?

时间:2015-12-11 06:02:38

标签: android overlay osmdroid

我正在尝试在离线地图上放置一个标记,我已经使用osmdroid成功显示了该标记。 为了避免混乱我的代码。我想在不同的类文件中定义叠加标记的方法。任何帮助都将受到高度赞赏。

我的主要活动就像。

public class MainActivity extends Activity {
TextView textView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    MapView mapView = (MapView) findViewById(R.id.mapview);
    textView = (TextView) findViewById(R.id.tv_location);

    mapView.setTileSource(TileSourceFactory.MAPNIK);
    mapView.setBuiltInZoomControls(true);
    mapView.setMultiTouchControls(true);
    mapView.setClickable(true);

    MapController mapController = mapView.getController();
    mapController.setCenter(new GeoPoint(22.6772796,79.5897374));
    GeoPoint point1 = new GeoPoint(22.6772796,79.5897374);
    mapController.setZoom(10); 

    LocationManager myLocationManager = (LocationManager) getApplicationContext().getSystemService(LOCATION_SERVICE);
    LocationListenerProxy llp=new LocationListenerProxy(myLocationManager);
    llp.startListening(gpsLocationListener, 1, 1) ;

    Marker mrkr = new Marker();
    mrkr.displayMarker();
}

我的标记类类似于:

public class Marker {


public void displayMarker(){
    ResourceProxyImpl mResourceProxy = new ResourceProxyImpl(getApplicationContext());

    final RelativeLayout rl = new RelativeLayout(this);

    CloudmadeUtil.retrieveCloudmadeKey(getApplicationContext());

    this.mOsmv = new MapView(this, 256);
    rl.addView(this.mOsmv, new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,
                    LayoutParams.FILL_PARENT));

}

}

1 个答案:

答案 0 :(得分:0)

没有必要为此创建不同的类,您需要在MainActiviy.java中编写一段代码

ArrayList<OverlayItem> anotherOverlayItemArray = new ArrayList<OverlayItem>();
    anotherOverlayItemArray.add(new OverlayItem("Bangalore","India", point1));
    OnItemGestureListener<OverlayItem> myOnItemGestureListener = null;
    ItemizedIconOverlay<OverlayItem> anotherItemizedIconOverlay = new ItemizedIconOverlay<OverlayItem>(this, anotherOverlayItemArray, myOnItemGestureListener);

    map.getOverlays().clear();   
    map.getOverlays().add(anotherItemizedIconOverlay);  
    map.invalidate();

在你的lib文件夹中使用osmdroid-android-4.2.jar,不要忘记构建Path。 jar文件包含所有必需的图像。