В моем проекте Android мне пришлось добавить TextChangedListener (TextWatcher) в текстовое представление редактирования. И есть три части.Различия между TextWatcher's onTextChanged, beforeTextChanged и afterTextChanged
onTextChanged
beforeTextChanged
afterTextChanged
Что дифферент этих трех. Мне пришлось выполнить поиск таблицы на ключевом лизере, и для моего случая все эти три выглядят одинаково. Также они функционировали одинаково. Когда я ввожу часть имени продукта, таблица перерисовывается, и только те продукты содержат введенный текст. Но я использовал часть afterTextChanged
. Мой код:
EditProduct.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
// System.out.println("onTextChanged"+s);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
// System.out.println("beforeTextChanged"+s);
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
// System.out.println("afterTextChanged"+s);
String new_prx = s.toString();
System.out.println(s);
mini_productList = new ArrayList<Product>();
// mini_productList
int count = 0;
if (new_prx.equals("")) {
loadtableProducts(productList);
} else {
for (int i = 0; i < productList.size(); i++) {
if (productList.get(i).getDescription().toString()
.substring(0, (new_prx.length()))
.equalsIgnoreCase(new_prx)) {
mini_productList.add(productList.get(i));
count++;
}
}
loadtableProducts(mini_productList);
}
}
});
Так может кто-нибудь дать мне объяснение на этих трех?
Вы можете найти эту нить полезным http://stackoverflow.com/questions/476848/android-textwatcher-aftertextchanged-vs-textwatcher-ontextchanged –