Нет CallBack для непосредственного удаления символа !!
Но каждый раз, когда вы добавляете любой текст или редактируете свой текст EditText, все из TextWatcher CallBacks называются Соответственно
(1- beforeTextChanged , 2- onTextChanged , 3- afterTextChanged )
Поэтому вы можете проверить операцию удаления во всехиз них, как показано ниже. Обратите внимание, что вам не нужно проверять операцию удаления во всех обратных вызовах. Есть 3 способа понять операцию удаления в TextWatcher в 3 TextWatcher CallBacks , и каждый из них может решить вашу проблему:)
. Я думаю, что это лучше для васзнать о некоторых аргументах TextWatcher callBacks.
Как сказал @ ikerfah
- start , это начальный индекс, который вот-вот будетудалено
- count - длина текста, который должен быть удален
- после - длина текста, который должен быть удалендобавлено
Пути:
- beforeTextChanged : вы сравниваете после аргумента с аргументом count.
- onTextChanged : вы объявляете поле в своей активности или фрагменте и заполняете поле каждый раз, когда вызывается
onTextChanged
. сравните ваше поле, которое предыдущий счетчик EditText с count аргумент, который является текущим EditTextCount; - afterTextChanged: Это очень похоже на
onTextChanged
слушательно вы просто используете длина вместо числа.
Измените свой окончательный addTextChangedListener ссылка ниже:
yourEditText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int start, int count, int after) {
if (after < count) {
// delete character action have done
// do what ever you want
Log.d("MainActivityTag", "Character deleted");
}
}
@Override
public void onTextChanged(CharSequence charSequence, int start, int before, int count) {
//mPreviousCount count is fied
if (mPreviousCount > count) {
// delete character action have done
// do what ever you want
Log.d("MainActivityTag", "Character deleted");
}
mPreviousCount=count;
}
@Override
public void afterTextChanged(Editable editable) {
Log.d("MainActivityTag",editable.toString());
int length=editable.length();
//mPreviousLength is a field
if (mPreviousLength>length)
{
// delete character action have done
// do what ever you want
Log.d("MainActivityTag", "Character deleted");
}
mPreviousLength=length;
}
});