Google 的 android 位置自动完成功能不断给我“无法加载搜索结果”
Posted
技术标签:
【中文标题】Google 的 android 位置自动完成功能不断给我“无法加载搜索结果”【英文标题】:Google's place autocomplete for android keeps giving me "Can't load search results" 【发布时间】:2016-11-19 16:51:18 【问题描述】:我正在设计一个使用地图并要求用户输入目的地的应用程序。我在 xml 中添加了 PlaceAutoCompleteFragment
分段 android:id="@+id/place_autocomplete_fragment" android:layout_ android:layout_ android:layout_gravity="top" android:name="com.google.android.gms.location.places.ui.PlaceAutocompleteFragment" />这就是我的 java 中的内容
PlaceAutocompleteFragment autocompleteFragment = (PlaceAutocompleteFragment)
getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment);
autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener()
@Override
public void onPlaceSelected(Place place)
// TODO: Get info about the selected place.
Log.i(TAG, "Place: " + place.getName());
@Override
public void onError(Status status)
// TODO: Handle the error.
Log.i(TAG, "An error occurred: " + status);
);
当我尝试搜索时,它显示:“无法加载搜索结果”。之后我该怎么办?
【问题讨论】:
这对我来说是间歇性发生的。当它发生时很难修复。你找到解决办法了吗? @Josh Smith 你找到解决方案了吗? 你找到解决办法了吗? 谁有这个解决方案? 【参考方案1】:autocomplete 小部件是一个具有内置自动完成功能的搜索对话框。
使用PlaceAutocomplete.IntentBuilder
创建一个意图来启动自动完成小部件作为一个意图。设置好可选参数后,调用build(Activity)
,将intent传递给startActivityForResult(android.content.Intent, int)
。
int PLACE_AUTOCOMPLETE_REQUEST_CODE = 1;
...
try
Intent intent = new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_FULLSCREEN).build(this);
startActivityForResult(intent, PLACE_AUTOCOMPLETE_REQUEST_CODE);
catch (GooglePlayServicesRepairableException e)
// TODO: Handle the error.
catch (GooglePlayServicesNotAvailableException e)
// TODO: Handle the error.
若要在用户选择地点时接收通知,您的应用应覆盖 Activity 的 onActivityResult(),检查您为 Intent 传递的请求代码,如下例所示。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
if (requestCode == PLACE_AUTOCOMPLETE_REQUEST_CODE)
if (resultCode == RESULT_OK)
Place place = PlaceAutocomplete.getPlace(this, data);
Log.i(TAG, "Place: " + place.getName());
else if (resultCode == PlaceAutocomplete.RESULT_ERROR)
Status status = PlaceAutocomplete.getStatus(this, data);
// TODO: Handle the error.
Log.i(TAG, status.getStatusMessage());
else if (resultCode == RESULT_CANCELED)
// The user canceled the operation.
【讨论】:
这不会改变结果。唯一的区别是它会启动一个单独的自动完成活动。但结果是一样的。只是给我“无法加载搜索结果”以上是关于Google 的 android 位置自动完成功能不断给我“无法加载搜索结果”的主要内容,如果未能解决你的问题,请参考以下文章
Google Places API Android:自动完成关闭太快
如何在工具栏中实现自动完成 google place api - Android
Google Places API Autocomplete 仅获取城市列表