1

私はGoogleマップV2を使用しています。私はgeocoderを使って場所を見つけるが、getFromLocationName()は私にnull値を返しているのだが、なぜそれが見つからないのか分からない。私のコードを見て、私に提案してください、どうすればいいですか?Geocoder.getFromLocationNameがnullを返す理由

EditText sLocation = (EditText) v.findViewById(R.id.editText1); 
       String location = sLocation.getText().toString(); 

       List<android.location.Address> addressList= null; 

       if (location != null || !location.equals("")) { 
        Geocoder geocoder = new Geocoder(getActivity().getApplicationContext()); 
        try { 
         addressList = geocoder.getFromLocationName(location, 1); 

        } catch (IOException e) { 
         e.printStackTrace(); 
        } 


        android.location.Address address = addressList.get(0); 
        LatLng latlng = new LatLng(address.getLatitude(), address.getLatitude()); 
        gMap.addMarker(new MarkerOptions().position(latlng).title("Marker")); 
        gMap.animateCamera(CameraUpdateFactory.newLatLng(latlng)); 

       } 
+1

チェックこのSO質問[4567216](http://stackoverflow.com/questions/4567216/geocoder-getfromlocationname-returns-only:私はonClick方法で私のEditTextを宣言した場合、その後getFromLocationName()私にこのような正しい値を返します-null)と[15182853](http://stackoverflow.com/questions/15182853/android-geocoder-getfromlocationname-always-returns-null)を参照してください。 – KENdi

+0

@KENdi、私は私の問題を解決しました。私の下の答えを見てください。 –

答えて

1

null値フォームgetFromLocationName()を取得していました。なぜなら、私のaddressListは場所から "ヌル"値を得ていたからです。

sButton =(Button) v.findViewById(R.id.generalId); 
sButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       EditText sLocation = (EditText)getActivity().findViewById(R.id.editText1); 
       location = sLocation.getText().toString(); 

       List<android.location.Address> addressList= null; 

       if (location != null || location.length()>0) { 
        Geocoder geocoder = new Geocoder(getActivity().getApplicationContext()); 
        try { 
         addressList = geocoder.getFromLocationName(location, 1); 

        } catch (IOException e) { 

          e.printStackTrace(); 
        } 

        android.location.Address address = addressList.get(0); 
        String locality = address.getLocality(); 
        Toast.makeText(getActivity(), locality, Toast.LENGTH_LONG).show(); 
        double latitude = address.getLatitude(); 
        double longitude = address.getLongitude(); 
        LatLng latLng = new LatLng(latitude, longitude); 
        gMap.addMarker(new MarkerOptions().position(latLng).title("Marker")); 
        gMap.animateCamera(CameraUpdateFactory.newLatLng(latLng)); 

       } 

      } 
     }); 
関連する問題