关于百度API suggesttionSearch的使用问题,谢谢解答

静水流深zz 2018-02-06 11:38:28
官方demo中,suggesttionSearch的请求 写在了textChanged里,并且可以成功发送同时收到正确的返回结果。
但是我将这个suggesttionSearch的请求写在一个方法A里然后在调用这个方法A时,却无法发送请求(实际上我也不知道是无法发送请求,还是发送了请求,但是没有回调suggestionResult这个函数——因为那个方法A确实调用成功了)。
我尝试了很多方法,如写在线程,内部类里或者直接写在onCr‘eate,但是都不可以。 唯独写在TextWatcher方法中的textChanged里面可以正常使用。
请问这是什么原因?非常感谢
...全文
839 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
一个小狼娃 2018-02-08
  • 打赏
  • 举报
回复
建议你去看一看自定义接口再来尝试吧,定义一定要搞懂……
静水流深zz 2018-02-07
  • 打赏
  • 举报
回复
引用 2 楼 qq_36255612 的回复:
有客服怎么不去提问?再说了,地图是联动查询,都是对edittext添加监听事件的,你的意思是当你输入完成后再去调用此方法吗?
不是,我是想单独发送一个请求,在后台把之前存储的用户输入的地址转换一下(百度联想的地址再用定位的话会比较精准)。
静水流深zz 2018-02-07
  • 打赏
  • 举报
回复
引用 3 楼 qq_36255612 的回复:
兄弟你这是常识性错误吧?回调函数就只有三个,你怎么在外边又调用自己的方法?你断点调试一下,看看能调用吗?回调回调?请问什么是回调?
客服我也问了,再等呢,这里也问了一下。 我初学者,只是想问一下那个请求为什么不能生效。
一个小狼娃 2018-02-07
  • 打赏
  • 举报
回复
兄弟你这是常识性错误吧?回调函数就只有三个,你怎么在外边又调用自己的方法?你断点调试一下,看看能调用吗?回调回调?请问什么是回调?
一个小狼娃 2018-02-07
  • 打赏
  • 举报
回复
有客服怎么不去提问?再说了,地图是联动查询,都是对edittext添加监听事件的,你的意思是当你输入完成后再去调用此方法吗?
静水流深zz 2018-02-07
  • 打赏
  • 举报
回复
补充一下代码(概要),避免过长浪费大家的时间,一些变量之类的声明我就省去了。 我的代码大概是下面这样(其中一些变量的声明和赋值我就省略了,避免太长,值都是检测过了准确的) public call Abc AppCompatActivity implements OnGetSuggestionResultListener{ private AutoCompleteTextView edtInfo=null; private SuggestionSearch mSuggestionSearch=null; @Override protected void onCreate(Bundle savedInstanceState){ super、控件声明等语句... mSuggestionSearch = SuggestionSearch.newInstance(); mSuggestionSearch.setOnGetSuggestionResultListener(this); edtInfo=(AutoCompleteTextView)findViewById(R.id.temp_database_info); edtInfo.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { if (charSequence.length()<=0){ return; } /* * 使用建议搜索服务获取建议列表,结果在onSuggestionResult()中更新 * */ //keyword 和city 中传递的值均正确,这里减小篇幅不写了。 mSuggestionSearch .requestSuggestion((new SuggestionSearchOption()) .keyword(charSequence.toString()) .city(edtCount.getText().toString())); } @Override public void afterTextChanged(Editable editable) { } }); bBB(); //调用函数bBB } public void bBB(){ //keyword 和city 中传递的值均正确,这里减小篇幅不写了。 mSuggestionSearch .requestSuggestion((new SuggestionSearchOption()) .keyword(charSequence.toString()) .city(edtCount.getText().toString())); } @Override public void onGetSuggestionResult(SuggestionResult res){ 逻辑... } } 现在的问题是,那个textChanged里面的request可以正常工作,但是另外那个bBB方法里的请求却没有效果(bBB可以正常调用,但是request貌似没有调用成功,或者调用了,但是为回调onGetSuggestionResult(SuggestionResult res) ,具体是什么原因我也不太清楚)。谢谢解答

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧