2016-04-25 68 views
1

我正在嘗試使用谷歌地圖。我有這樣的代碼:addressList大小爲0谷歌地圖

 public void onMapReady(GoogleMap googleMap) { 

     mMap = googleMap; 
     mMap.getUiSettings().setZoomControlsEnabled(true); 


     List <Address> addressList = null; 
     if (location != null || !location.equals("")){ 
      Geocoder geocoder = new Geocoder(this); 
      try { 
       addressList = geocoder.getFromLocationName(location, 1); 


      }catch (IOException e){ 
       e.printStackTrace(); 
      } 
      Address address = addressList.get(0); 
      LatLng latLng = new LatLng(address.getLatitude(), address.getLongitude()); 
      mMap.addMarker(new MarkerOptions().position(latLng).title(location)); 
      mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 15)); 
     } 
    } 

但我收到此: AddressList中大小爲0錯誤「java.lang.IndexOutOfBoundsException:無效指數0,大小爲0的」 位置是我的變量,但能正常工作。我究竟做錯了什麼?非常感謝。得到零結果

回答

1

可能性是

列表getFromLocationName(字符串LOCATIONNAME,詮釋的maxResults):回報:地址對象的列表。如果找不到匹配或沒有可用的後端服務,則返回空列表或空列表。

,並調用地理編碼的任何方法來獲得地址或結果,檢查地理編碼服務之前可以使用Geocoder.isPresent()

if(Geocoder.isPresent()){ 
    //do your stuff 
}else{ 
    //cann't implement geocoder 
} 

happyCoding執行;

+0

非常感謝!這也是我的模擬器錯誤,謝謝! –