2012-01-23 23 views
3

マップビューがAndroid appappicationにロードされているかどうかを検出するのに問題があります。 OnCreateメソッドでは、マップURLを割り当てるときに問題が発生したかどうかを知りたいと思っています。私のインターネット接続や、RESTサービスから地図を読み込むなどの問題が原因で問題が発生することがあります。ここに私のコードブロックです。この時点の後Android - mapViewが正しく読み込まれているかどうかを確認する方法

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

、マップが正しくロードされているが、それはこのブロックに落ちる、私は(偽map.isLoaded ==)場合のようなコントロールを使用しようとするが、それは動作しません。

誰でも手伝ってもらえますか?何が起こっかもしれないが、それが初期化されている前にコードがmap.isLoadedを()チェックされているように、事前

答えて

3

おかげでね。初期化を正しく確認する方法については、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(); 
      } 
     } 
    }); 
関連する問題