Эй, ребята, я хотел бы знать, как управлять задержками в приложении для Android, например, у меня есть переопределенный метод onTextChanged (). В связи с этим я хочу установить задержку, например, 0,5 секунды, чтобы завершить то, что пользователь печатает в моем текстовом поле автозаполнения. Если пользователь зависает / перестает печатать в течение 5 секунд, я хотел, чтобы в моем коде выполнялся определенный метод или реализация (т.е. моя собственная схема / логика фильтрации в моем текстовом поле автозаполнения, просто чтобы уменьшить использование ресурсов в моем приложении, спасибо).
Вот мой пример кода:
protected AutoCompleteTextView autoCompleteView;
protected AutoCompleteAdapter suggsAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
countries = getResources().getStringArray(R.array.countries_array);
autoCompleteView = (AutoCompleteTextView) findViewById(R.id.autocomplete_country);
TextWatcher textChecker = new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//here inside this overridden method, I wanted to create a delay in order to lessen the
//use of resources.
String enteredText = autoCompleteView.getText().toString();
refreshList(enteredText);
}
};
autoCompleteView.addTextChangedListener(textChecker);
}
и, например, пользователь набрал «Lond» (для String, например, «London»), причем каждая буква набирается менее чем за 0,5 секунды. Я хочу, чтобы все предыдущие методы onTextChanged () вызывались (вызов метода при наборе «L», "o" и "n") игнорируются, и только onTextChanged (), когда была набрана последняя буква, будут предоставлены для выполнения.
Как бы я это сделал, пожалуйста, помогите мне: (.