如何解决使用Textwatcher时取消对新的Retrofit请求的旧的Retrofit请求
我想使数据搜索自动完成,然后将结果绑定到微调器中,并在键入字母时执行请求,但是有时存在一个问题,即最后一个字母的搜索结果会在前一个字母中发生变化
。我的文字查看器:
etSearchCustomer.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s,int start,int count,int after) {
}
@Override
public void onTextChanged(CharSequence s,int before,int count) {
}
@Override
public void afterTextChanged(Editable s) {
searchCustomers(s);
}
});
MyApiRequest:
public void searchCustomers(String keyword){
Call<DataCustomerResponse> search;
search=apiRequestData.searchDataCustomer(keyword);
search.enqueue(new Callback<DataCustomerResponse>() {
public void onResponse(Call<DataCustomerResponse> call,Response<DataCustomerResponse> response) {
customers.clear();
customers.addAll(response.body().getData());
ArrayAdapter<ModelDataCustomer> arrayAdapter = new ArrayAdapter<>(PilihCustomer.this,R.layout.support_simple_spinner_dropdown_item,customers);
arrayAdapter.setDropDownViewResource(R.layout.support_simple_spinner_dropdown_item);
spinnerCustomer.setAdapter(arrayAdapter);
}
public void onFailure(Call<DataCustomerResponse> call,Throwable t) {
}
});
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。