@Override
public void onSearchTextChanged(String oldQuery, final String newQuery) {
if (!oldQuery.equals("") && newQuery.equals("")) {
m_searchView.clearSuggestions();
} else {
textAutoSuggestionRequest = new TextAutoSuggestionRequest(newQuery);
textAutoSuggestionRequest.execute(new ResultListener < List < AutoSuggest >> () {
@Override
public void onCompleted(List < AutoSuggest > autoSuggests, ErrorCode error) {
if (error == ErrorCode.NONE) {
if (autoSuggests.size() > 0) {
Toast.makeText(getActivity(), "kek", Toast.LENGTH_SHORT).show();
//searchlist = autoSuggests;
for (int i = 0; i < autoSuggests.size(); i++) {
// listItems.add(autoSuggests.get(i).getTitle());
Toast.makeText(getActivity(), autoSuggests.get(i).getTitle(), Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(getActivity(), error.name(), Toast.LENGTH_SHORT).show(); // Displays as BAD_REQUEST
}
}
});
}
//Log.d(TAG, "onSearchTextChanged()");
}
});
}
如上面的代码所示,它不会进入if(error == ErrorCode.NONE)块,因为错误是在Toast中看到的BAD_REQUEST。我尝试使用我的Wifi和移动数据以及不同的网络,但无济于事。有关如何解决错误的任何建议吗?
编辑:我也使用https://github.com/arimorty/floatingsearchview作为我的搜索栏,因此onSearchTextChanged的方法是从那里派生的。
答案 0 :(得分:1)
看起来问题可能是您没有为请求设置位置上下文。您可以使用TextAutoSuggestionRequest#setSearchCenter(GeoCoordinate center)
或TextAutoSuggestionRequest#setMapViewport(GeoBoundingBox mapViewport)
。