Почему Geocoder.getFromLocationName возвращает ноль?
Я использую Google Map V2. Я хочу использовать geocoder
чтобы найти место, но getFromLocationName()
это возвращает мне нулевое значение, и я не мог найти почему. Просто посмотрите мой код и предложите мне, что мне делать?
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 ответ
Я получаю нулевую форму getFromLocationName()
, Потому что мой addressList
получает нулевое значение от местоположения. Когда я объявил мой EditText
в onClick
метод тогда getFromLocationName()
верните мне правильное значение, как это:
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));
}
}
});