2012-01-23 30 views
3

我在检测mapview是否加载到我的android地图应用程序中时遇到了问题。在OnCreate方法中,当我分配地图URL时,我想知道是否发生任何问题。由于我的互联网连接或任何其他问题(如从REST服务加载地图)可能会发生问题。这是我的代码块;Android - 如何知道mapView是否正确加载?

map.addLayer(newArcGISDynamicMapServiceLayer("any map URL")); 

这一点后,我尝试使用一样,如果(map.isLoaded ==假),但它不工作的控制,虽然地图是正确加载它落入该块。

任何人都可以帮助我吗?

在此先感谢

回答

3

听起来像什么可能发生的是代码检查map.isLoaded()已初始化之前。有关如何正确检查初始化的官方说明,请检查MapView Reference

我的参考代码扩展

map = (MapView) findViewById(R.id.map); 
    tileLayer = new ArcGISTiledMapServiceLayer("http://services.arcgisonline.com/ArcGIS/rest/services/World_Shaded_Relief/MapServer"); 

    tileLayer.setOnStatusChangedListener(new OnStatusChangedListener() { 
     public void onStatusChanged(Object source, STATUS status) { 
      if (OnStatusChangedListener.STATUS.INITIALIZED == status){ 
       map.addLayer(tileLayer); //when layer is initialized add to map 
      } 
     } 
    }); 


    map.setOnStatusChangedListener(new OnStatusChangedListener() { 
     private static final long serialVersionUID = 1L; 

     public void onStatusChanged(Object source, STATUS status) { 
      //conditional checks if mapView's status has changed to initialized 
      if (OnStatusChangedListener.STATUS.INITIALIZED == status && source == map) 
      { 
       Toast mapViewToast = Toast.makeText(ActivityName.this, "MapView loaded", Toast.LENGTH_LONG); 
       mapViewToast.show(); 
      } 
     } 
    }); 
相关问题