2016-04-25 6 views
1

私はGoogleマップを使用しようとしています。私はこのコードを持っている:addressListのサイズは0ですGoogleマップ

 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)); 
     } 
    } 

をしかし、私はこれを受け取る: アドレスリストのサイズ0のエラー「java.lang.IndexOutOfBoundsException:無効なインデックス0、サイズが0の」 場所は私の変数であるが、正常に動作します。私は何を間違えているのですか?どうもありがとう。ゼロの結果を得るための

答えて

1

可能性が

一覧getFromLocationName(文字列のlocationName、int型maxResults)は以下のとおりです。戻り値:Addressオブジェクトのリスト。一致するものが見つからなかった場合、または利用可能なバックエンドサービスがない場合は、nullまたは空のリストを返します。

とアドレスまたは結果を得るためにジオコーダの任意のメソッドを呼び出す前に、ジオコーダサービスをチェックするには、Geocoder.isPresent()

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

happyCodingを使用して実装することができます。

+0

ありがとうございました!私のエミュレータのおかげで、それはまたエラーでした! –

関連する問題