Вместо того, чтобы выполнять сетевой вызов, когда пользователь вводит тип, вы можете сделать сетевой вызов, когда пользователь перестанет печатать. я реализовать его же случае, как yours.I имеют AutocompleteextView и когда тип пользователя я должен показать ему список предложений, но я называю WebService, когда пользователь прекращает typing.Below мой пример -
private final static int DELAY_BEFOR_SEARCH = 2000;
Здесь является автозаполнение TextView Слушатель -
myAutocompleteTV.addTextChangedListener(new SearchListener());
и здесь Слушатель Класс -
public class SearchListener implements TextWatcher{
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
try{
mMessageHandler.removeCallbacks(mSearchRunnable);
if(s.length()>0){
if(Utility.isNetworkAvailable(mContext)){
mMessageHandler.postDelayed(mSearchRunnable, DELAY_BEFOR_SEARCH);
}
else{
Toast.makeText(mContext, getResources().getString(R.string.no_network_message),Toast.LENGTH_SHORT).show();
}
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}
и здесь Runnable -
Runnable mSearchRunnable = new Runnable() {
public void run() {
//TODO call your webservice here
}
}
например, если пользовательский тип хочет найти «Android», и он набирает «Andr» и перестает печатать за 2000 мс, тогда мой сетевой вызов выполняется.
Вы можете использовать Volley для этого. – jonDoe