使用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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...