使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
基本地点自动补全组件
Places UI Kit 的基本地点自动补全组件可让您添加一个单独的界面组件,该组件会在用户选择地点时返回地点 ID。该组件是一个全屏覆盖层,可为用户提供一个用于输入查询内容的搜索栏。当用户输入内容时,搜索栏下方会显示自动补全结果列表。当用户点按某个地点时,系统会向开发者返回一个仅包含地点 ID 的地点对象。此组件可自定义。
基本地点自动补全组件具有以下自定义选项:列表密度,以及是否包含位置图标。使用 AutocompleteUICustomization
自定义组件。
您可以单独使用基本地点自动补全组件,也可以将其与其他 Google Maps Platform API 和服务搭配使用。
结算
每次打开该组件并进行查询时,系统都会向您收取费用。除非会话过期或您从列表中选择某个地点,否则系统不会再次针对该会话向您收费。
向应用添加基本自动补全组件
设置自动补全过滤条件参数(例如要返回的类型、要将结果限定到的国家/地区、结果的区域坐标、用于显示距离信息的请求来源 [如有]),就像使用地点自动补全(新)而不使用 Places UI Kit 一样。如需查看完整说明和用于创建自动补全过滤器的代码示例,请参阅地点自动补全(新)文档。
创建自动补全过滤条件后,添加界面自定义设置。查看自定义选项和说明。
Kotlin
AutocompleteUiCustomization.create(
listDensity = AutocompleteListDensity.MULTI_LINE,
listItemIcon = AutocompleteUiIcon.noIcon(),
)
Java
AutocompleteUiCustomization.builder()
.listItemIcon(AutocompleteUiIcon.noIcon())
.listDensity(AutocompleteListDensity.MULTI_LINE)
.build()
查看完整示例。
自定义基本自动补全组件
列表密度
您可以选择显示双行列表或多行列表。在 AutocompleteUICustomization
类中使用 AutocompleteListDensity
中的选项(TWO_LINE
或 MULTI_LINE
)。如果您未指定列表密度,该组件将显示双行列表。
“位置”图标
您可以选择是否在结果列表中显示默认地点图标。使用 AutocompleteUICustomization
类中 AutocompleteUIIcon
(listItemDefaultIcon
或 noIcon
)中的选项。
向基本自动补全组件添加自定义设置
使用 AutocompleteUICustomization
类自定义基本自动补全组件。
Kotlin
.setAutocompleteUiCustomization(
AutocompleteUiCustomization.create(
listDensity = AutocompleteListDensity.MULTI_LINE,
listItemIcon = AutocompleteUiIcon.noIcon(),
)
)
Java
.setAutocompleteUiCustomization(
AutocompleteUiCustomization.builder()
.listItemIcon(AutocompleteUiIcon.noIcon())
.listDensity(AutocompleteListDensity.MULTI_LINE)
.build()
)
示例
此示例创建了一个自定义的基本自动补全组件。
Kotlin
val basicPlaceAutocompleteActivityResultLauncher:
ActivityResultLauncher<Intent> =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
result: ActivityResult ->
val intent = result.data
val place: Place? = BasicPlaceAutocomplete.getPlaceFromIntent(intent!!)
val status: Status? =
BasicPlaceAutocomplete.getResultStatusFromIntent(intent!!)
// ...
}
val autocompleteIntent: Intent =
BasicPlaceAutocomplete.createIntent(this) {
setInitialQuery("INSERT_QUERY_TEXT")
setOrigin(LatLng(10.0, 10.0))
// ...
setAutocompleteUiCustomization(
AutocompleteUiCustomization.create(
listDensity = AutocompleteListDensity.MULTI_LINE,
listItemIcon = AutocompleteUiIcon.noIcon(),
)
)
}
basicPlaceAutocompleteActivityResultLauncher.launch(autocompleteIntent)
Java
ActivityResultLauncher<Intent> basicPlaceAutocompleteActivityResultLauncher =
registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
new ActivityResultCallback<ActivityResult>() {
@Override
public void onActivityResult(ActivityResult result) {
Intent intent = result.getData();
if (intent != null) {
Place place =
BasicPlaceAutocomplete.getPlaceFromIntent(intent);
Status status =
BasicPlaceAutocomplete.getResultStatusFromIntent(intent);
//...
}
}
}
);
Intent basicPlaceAutocompleteIntent =
new BasicPlaceAutocomplete.IntentBuilder()
.setInitialQuery("INSERT_QUERY_TEXT")
.setOrigin(new LatLng(10.0, 10.0))
//...
.setAutocompleteUiCustomization(
AutocompleteUiCustomization.builder()
.listItemIcon(AutocompleteUiIcon.noIcon())
.listDensity(AutocompleteListDensity.MULTI_LINE)
.build())
.build(this);
basicPlaceAutocompleteActivityResultLauncher.launch(basicPlaceAutocompleteIntent);
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-08-17。
[null,null,["最后更新时间 (UTC):2025-08-17。"],[],[],null,["Basic Place Autocomplete component\n\n\nThe Basic Place Autocomplete component of the Places UI Kit lets you add an individual UI component that returns a [place ID](/maps/documentation/places/android-sdk/place-id) when a user selects a place. The component is a full screen cover that provides a search bar for users to enter a query. As the user types, a list of autocomplete results will be shown below the search bar. When the user taps on a place, a place object with only place ID is returned to the developer. This component is customizable.\n\n\nThe Basic Place Autocomplete component has the following customization options: list density, and whether to include location icons. Use [`AutocompleteUICustomization`](/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/widget/model/AutocompleteUiCustomization) to customize the component.\n\n\nYou can use the Basic Place Autocomplete component independently or in conjunction with other Google Maps Platform APIs and services.\n\nBilling\n\n\nYou are billed each time the component is opened and a query is made. You won't be billed again for that session unless the session expires or a place is selected from the list.\n\nAdd the Basic Autocomplete component to your app\n\n\nSet the autocomplete filter parameters (for example, the types to return, the country to limit results to, the region coordinates for results, the origin of the request to display distance information, if available) as you would to use Place Autocomplete (New) without the Places UI Kit. See the [Place Autocomplete (New) documentation](/maps/documentation/places/android-sdk/place-autocomplete) for full instructions and [an example of the code to create an autocomplete filter](/maps/documentation/places/android-sdk/place-autocomplete#optional-parameters).\n\n\nOnce you've created your autocomplete filter, add your UI customizations. [See customization options and instructions.](/maps/documentation/places/android-sdk/basic-place-autocomplete#customize-the-basic-autocomplete-component) \n\nKotlin \n\n```kotlin\nAutocompleteUiCustomization.create(\n listDensity = AutocompleteListDensity.MULTI_LINE,\n listItemIcon = AutocompleteUiIcon.noIcon(),\n)\n```\n\nJava \n\n```java\n \nAutocompleteUiCustomization.builder()\n .listItemIcon(AutocompleteUiIcon.noIcon())\n .listDensity(AutocompleteListDensity.MULTI_LINE)\n .build()\n```\n\n\n[See the full example](/maps/documentation/places/android-sdk/basic-place-autocomplete#example).\n\nCustomize the Basic Autocomplete component\n\nList density\n\n\nYou can choose to either display a two-line list or a multiline list. Use the options in `AutocompleteListDensity` (`TWO_LINE` or `MULTI_LINE`) in the [`AutocompleteUICustomization`](/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/widget/model/AutocompleteUiCustomization) class. If you don't specify the list density, the component will display a two-line list.\n\nLocation icon\n\n\nYou can choose whether to display a default place icon on the results list. Use the options in `AutocompleteUIIcon` (`listItemDefaultIcon` or `noIcon`) in the [`AutocompleteUICustomization`](/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/widget/model/AutocompleteUiCustomization) class.\n\nAdd customizations to the Basic Autocomplete component\n\n\nUse the [`AutocompleteUICustomization`](/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/widget/model/AutocompleteUiCustomization) class to customize the Basic Autocomplete component. \n\nKotlin \n\n```kotlin\n.setAutocompleteUiCustomization(\n AutocompleteUiCustomization.create(\n listDensity = AutocompleteListDensity.MULTI_LINE,\n listItemIcon = AutocompleteUiIcon.noIcon(),\n )\n)\n```\n\nJava \n\n```java\n.setAutocompleteUiCustomization(\n AutocompleteUiCustomization.builder()\n .listItemIcon(AutocompleteUiIcon.noIcon())\n .listDensity(AutocompleteListDensity.MULTI_LINE)\n .build()\n)\n```\n\nExample\n\n\nThis example creates a custom Basic Autocomplete component. \n\nKotlin \n\n```kotlin\n val basicPlaceAutocompleteActivityResultLauncher:\n ActivityResultLauncher\u003cIntent\u003e =\n registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {\n result: ActivityResult -\u003e\n val intent = result.data\n val place: Place? = BasicPlaceAutocomplete.getPlaceFromIntent(intent!!)\n val status: Status? = \n BasicPlaceAutocomplete.getResultStatusFromIntent(intent!!)\n // ...\n }\n \n val autocompleteIntent: Intent =\n BasicPlaceAutocomplete.createIntent(this) {\n setInitialQuery(\"INSERT_QUERY_TEXT\")\n setOrigin(LatLng(10.0, 10.0))\n // ...\n \n setAutocompleteUiCustomization(\n AutocompleteUiCustomization.create(\n listDensity = AutocompleteListDensity.MULTI_LINE,\n listItemIcon = AutocompleteUiIcon.noIcon(),\n )\n )\n }\n \n basicPlaceAutocompleteActivityResultLauncher.launch(autocompleteIntent)\n```\n\nJava \n\n```java\n ActivityResultLauncher\u003cIntent\u003e basicPlaceAutocompleteActivityResultLauncher =\n registerForActivityResult(\n new ActivityResultContracts.StartActivityForResult(),\n new ActivityResultCallback\u003cActivityResult\u003e() {\n @Override\n public void onActivityResult(ActivityResult result) {\n Intent intent = result.getData();\n if (intent != null) {\n Place place =\n BasicPlaceAutocomplete.getPlaceFromIntent(intent);\n Status status =\n BasicPlaceAutocomplete.getResultStatusFromIntent(intent);\n //...\n }\n }\n }\n );\n \n Intent basicPlaceAutocompleteIntent =\n new BasicPlaceAutocomplete.IntentBuilder()\n .setInitialQuery(\"INSERT_QUERY_TEXT\")\n .setOrigin(new LatLng(10.0, 10.0))\n //...\n \n .setAutocompleteUiCustomization(\n AutocompleteUiCustomization.builder()\n .listItemIcon(AutocompleteUiIcon.noIcon())\n .listDensity(AutocompleteListDensity.MULTI_LINE)\n .build())\n .build(this);\n \n basicPlaceAutocompleteActivityResultLauncher.launch(basicPlaceAutocompleteIntent);\n```"]]