【发布时间】:2015-06-26 22:50:37
【问题描述】:
我正在使用适用于 Android 的 Google Places API,但我似乎无法从 PendingResult 中获取 resultCallback 来触发。这是我的代码(与https://github.com/googlesamples/android-play-places/tree/master/PlaceComplete 的示例代码基本相同,但在对话框中除外)
adapter = ((MainActivity) getActivity()).getAdapter();
googleApiClient = ((MainActivity) getActivity()).getGoogleApiClient();
final AutoCompleteTextView tvCity = new AutoCompleteTextView(getActivity());
tvCity.setAdapter(adapter);
tvCity.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
final PlacesAutoCompleteAdapter.PlaceAutocomplete item = adapter.getItem(position);
final String placeId = String.valueOf(item.placeId);
PendingResult<PlaceBuffer> placeResult = Places.GeoDataApi
.getPlaceById(googleApiClient, placeId);
placeResult.setResultCallback(new ResultCallback<PlaceBuffer>() {
@Override
public void onResult(PlaceBuffer places) {
if (places.getStatus().isSuccess()) {
final Place place = places.get(0);
cityCoordinates = place.getLatLng();
} else {
dialog.dismiss();
Toast.makeText(getActivity(), "There was an error, please try again", Toast.LENGTH_SHORT).show();
return;
}
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(true);
places.release();
}
});
}
});
【问题讨论】:
-
您是否为 API 创建了密钥,添加到项目中等等?
-
@AlvaroSantisteban 是的,当然,自动完成部分本身工作正常。就在我点击 autocompletetextview 中的一个项目时,ResultCallback 部分永远不会触发。
标签: android google-play-services google-places-api