2012-01-23 5 views
3

У меня возникли проблемы с обнаружением того, загружено ли mapview в мою привязку к карте Android. В методе OnCreate, когда я назначаю URL-адрес карты, я хочу знать, возникла ли какая-либо проблема. Проблемы могут возникать из-за моего подключения к Интернету или любых других проблем, таких как загрузка карты из служб REST. Вот мой кодовый блок;Android - Как узнать, правильно ли загружена картаView?

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(); 
      } 
     } 
    }); 
Смежные вопросы