Я использую средство выбора мест из Android Google SDK мест, чтобы получить адреса. Средство выбора мест возвращает адреса очень хорошо, я могу получить адрес, LatLng, но когда я пытаюсь получить название страны через локаль, он возвращает ноль!
Вот мой фрагмент кода:
SupportPlaceAutocompleteFragment mAddressEditText = (SupportPlaceAutocompleteFragment) getSupportFragmentManager().findFragmentById(R.id.address);
mAddressEditText.setHint("Address");
mAddressEditText.setOnPlaceSelectedListener(new PlaceSelectionListener()
{
@Override
public void onPlaceSelected(Place place)
{
// TODO: Get info about the selected place.
Log.d(TAG, "Place selected");
mAddressOK = true;
mAddress = place.getAddress().toString();
mLocation = place.getLatLng();
mCountry = place.getLocale().getDisplayCountry();
}
@Override
public void onError(Status status)
{
// TODO: Handle the error.
Log.d(TAG, "Invalid Place Selected.");
mAddressOK = false;
invalidAddressDialog.show();
}
});
Но я получаю следующую ошибку:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.util.Locale.getDisplayCountry()' on a null object reference
Я убедился, что place.getLocale () возвращает ноль через проверку Log.d. В документации не указано, что вызов функции может вернуть значение null, и я не уверен, почему это происходит.
EDIT1:
Согласно документации класс Place внутренне использует языковой стандарт для форматирования адреса. так почему же getLocale возвращает null?!