Android百度地图POI搜索怎么用Edit Text来设置搜索城市和关键词
????难道不是就那么用?没明白问题点在哪里
如果你说的是输入监听的话,我是这么做的
private EditText et_search;
private PoiSearch poiSearch = null;
............................................
// 初始化建议搜索模块,注册建议搜索事件监听
poiSearch = PoiSearch.newInstance();
//在这里返回搜出的数据
poiSearch.setOnGetPoiSearchResultListener(new OnGetPoiSearchResultListener() {
@Override
public void onGetPoiResult(PoiResult poiResult) {
Log.d("dadasd00",new Gson().toJson(poiResult));
if (poiResult == null || poiResult.getAllPoi() == null) {
return;
}
if (page == 0){
listInfo.clear();
}
for (PoiInfo info : poiResult.getAllPoi()) {
if (TextUtils.isEmpty(info.getName())||TextUtils.isEmpty(info.getAddress())||TextUtils.isEmpty(info.getCity())||TextUtils.isEmpty(info.getArea())||info.getLocation() == null){
}else {
MapEntity entity = new MapEntity();
entity.setName(info.getName());
entity.setAddress(info.getAddress());
entity.setCity(info.getCity());
entity.setLocation(info.getLocation());
entity.setArea(info.getArea());
entity.setProvince(info.getProvince());
listInfo.add(entity);
}
}
mapAdapter.notifyDataSetChanged();
}
@Override
public void onGetPoiDetailResult(PoiDetailSearchResult poiDetailSearchResult) {
Log.d("dadasd11",new Gson().toJson(poiDetailSearchResult));
}
@Override
public void onGetPoiIndoorResult(PoiIndoorResult poiIndoorResult) {
}
//废弃
@Override
public void onGetPoiDetailResult(PoiDetailResult poiDetailResult) {
}
});
// 当输入关键字变化时,动态更新建议列表
et_search.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable arg0) {
if (arg0.equals("")){
rv_search.setVisibility(View.GONE);
}else {
rv_search.setVisibility(View.VISIBLE);
}
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
}
@Override
public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
if (cs.length() <= 0) {
return;
}
page = 0;
getList();
}
});
调用百度POI请求数据:
private void getList(){
/**
* 在您的项目中,keyword为随您的输入变化的值
*/
PoiCitySearchOption poiCitySearchOption = new PoiCitySearchOption()
.city(BaseApplication.basePreferences.readCity()) //必填
.keyword(et_search.getText().toString()) //必填
.pageNum(page)
.pageCapacity(20);
poiCitySearchOption.mIsCityLimit = false;
poiSearch.searchInCity(poiCitySearchOption);
}
上面的 adapter 和list 可以根据你的要求自己编写