【发布时间】:2020-01-06 18:58:07
【问题描述】:
我正在尝试使用 Google Maps API 通过在 editText 中搜索地址来获取地址列表。
例如,如果我在屏幕顶部的 editText 中搜索地址,在它的下方会有一个地址列表供您选择。
我不需要它的地图部分,只需要结果和搜索框。
【问题讨论】:
标签: java android google-maps
我正在尝试使用 Google Maps API 通过在 editText 中搜索地址来获取地址列表。
例如,如果我在屏幕顶部的 editText 中搜索地址,在它的下方会有一个地址列表供您选择。
我不需要它的地图部分,只需要结果和搜索框。
【问题讨论】:
标签: java android google-maps
可以选择使用PlaceAutocompleteFragment - 当我第一次添加它时,我没有结算帐户,所以你应该很好:
将其添加到 XML 中
<fragment
android:id="@+id/place_autocomplete_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:name="com.google.android.gms.location.places.ui.PlaceAutocompleteFragment"
/>
使用PlaceSelectionListener:
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);
}
});
documentation的备注:
Google Places API 需要 API 级别 12 或更高级别才能支持
PlaceAutocompleteFragment对象。如果您的目标应用程序早于 API 级别 12,则可以通过SupportPlaceAutocompleteFragment类访问相同的功能。您还必须包含 Android v4 支持库。
【讨论】:
首先你需要一个组件,比如AutoCompleteTextView。
第二个谷歌有一个关于自动建议地址的文档。就是这么简单,注册,创建api key等等。 Here is a link to doc.
逻辑:用户按下输入文本,组件触发回调onTextChanged,在向用户显示收到的列表后,您请求获取建议列表。
【讨论】: