这个API似乎相当新,所以这里没有太多问题,也没有很多教程。
我按照Google的教程,在我的应用中使用了Autocomplete Android api。我现在正尝试使用 AutocompleteFilter 将结果限制在某个地区或某些类型的地方。
对于像我这样的初学者来说,似乎没有什么文档可以解释该怎么做。
AutocompleteFilter需要一个Collection对象。如何将以下值更改为整数?
答案 0 :(得分:6)
我还不能评论,所以我在这里添加一个警告,上面的答案是:
并非所有来自Place的常量都可以使用AutocompleteFilter进行过滤,Android上只有两个可用:Place.TYPE_GEOCODE
和Place.TYPE_ESTABLISHMENT
('地址'出现在文档中,但不会在Place
中保持不变)
如果使用任何其他常量(例如Place.TYPE_LOCALITY
),请求将导致此混乱状态错误:
Status{statusCode=NETWORK_ERROR, resolution=null}
答案 1 :(得分:5)
根据您的要求,可以构建AutocompleteFilter
。然后,可以使用IntentBuilder
将此过滤器应用于setFilter()
。
例如:
如果您想将结果限制在特定国家/地区,可以通过以下方式执行此操作:
AutocompleteFilter typeFilter = new AutocompleteFilter.Builder().setCountry("IN").build();
Intent intent = new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_FULLSCREEN).setFilter(typeFilter).build(this);
如果您想将结果限制为特定地点类型,您可以通过将过滤器更改为以类似方式执行此操作:
AutocompleteFilter typeFilter = new AutocompleteFilter.Builder().setTypeFilter(AutocompleteFilter.TYPE_FILTER_REGIONS).build();
答案 2 :(得分:4)
问题由我通过Google地址工作支持门户联系的Google员工解决。
这是一个地方类型列表及其整数对应物。
https://developers.google.com/android/reference/com/google/android/gms/location/places/Place
这些可用于过滤Android Place Autocomplete API。
答案 3 :(得分:3)
Android Place Autocomplete不支持上一个答案中提供的link枚举的所有类型。
自v8.4发布以来,受支持的类型由AutocompleteFilter提供,如记录here
// AutocompleteFilter
public static final int TYPE_FILTER_NONE = 0;
public static final int TYPE_FILTER_GEOCODE = 1007;
public static final int TYPE_FILTER_ADDRESS = 2;
public static final int TYPE_FILTER_ESTABLISHMENT = 34;
public static final int TYPE_FILTER_REGIONS = 4;
public static final int TYPE_FILTER_CITIES = 5;