无法解析 AutocompleteFilter.create
Posted
技术标签:
【中文标题】无法解析 AutocompleteFilter.create【英文标题】:cannot resolve AutocompleteFilter.create 【发布时间】:2018-06-19 20:24:40 【问题描述】:我正在尝试使用此代码过滤来自 google 地方的自动填充结果:
List<Integer> filters = new ArrayList<Integer>();
filters.add(AutocompleteFilter.TYPE_FILTER_ADDRESS);
filters.add(AutocompleteFilter.TYPE_FILTER_CITIES);
mAutocompleteFilter = AutocompleteFilter.create(filters);
但它 方法。
build.gradle:
compile "com.google.android.gms:play-services-maps:11.4.2"
compile "com.google.android.gms:play-services-auth:11.4.2"
compile "com.google.android.gms:play-services-location:11.4.2"
compile "com.google.android.gms:play-services-places:11.4.2"
是因为版本 11.4.2 的原因吗?我不想降级。在此 AutocompleteFilter 中是否有其他替代方法可以使用多个整数?
【问题讨论】:
【参考方案1】:没有create
方法,而是使用AutocompleteFilter.Builder
。
From Docs
使用 AutocompleteFilter.Builder 创建一个新的 AutocompleteFilter。
mAutocompleteFilter = new AutocompleteFilter.Builder()
.setTypeFilter(AutocompleteFilter.TYPE_FILTER_CITIES)
.setTypeFilter(AutocompleteFilter.TYPE_FILTER_ADDRESS)
.build();
【讨论】:
AutocompleteFilter.Builder 在其方法中只接受一个过滤器,我需要 TYPE_FILTER_ADDRESS 和 TYPE_FILTER_CITIES 的组合。 :-( 那怎么可能呢? @mKosut 请刷新页面并尝试代码,或者您也可以使用TYPE_FILTER_REGIONS
感谢您的回答。但是,您编写的代码仅将 typeFilter 从 CITIES 重新设置为 ADDRESS。所以它只接受最后一个,在这种情况下是 TYPE_FILTER_ADDRESS。并且 TYPE_FILTER_REGIONS 包括 TYPE_COUNTRY。我需要从我的自动完成功能中排除国家/地区。
@mKosut 没有其他选项可以同时应用这两个过滤器,其他方式是您可以创建自己的自定义类来实现您的目标【参考方案2】:
似乎无法通过AutocompleteFilter
应用多个过滤器,但您可以在每个单独的place type
上使用PlaceSearch
来代替它:
https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=LAT,LON&radius=RADIUS&type=PLACE_TYPE, e.g. restaurant&keyword=cruise&key=YOUR_API_KEY
【讨论】:
以上是关于无法解析 AutocompleteFilter.create的主要内容,如果未能解决你的问题,请参考以下文章