У меня есть 2 класса:
public class ContentEditText extends EditText {
public ContentEditText(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
}
public ContentEditText(Context context, AttributeSet attrs)
{
super(context, attrs);
}
public ContentEditText(Context context)
{
super(context);
}
@Override
protected void onSelectionChanged(int selStart, int selEnd)
{
Log.e(TAG, "on selectoin changed");
}
}
и
public class EditTextListener implements TextWatcher {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{
Log.e(TAG, "on text changed");
}
@Override
public void afterTextChanged(Editable s)
{
Log.e(TAG, "on text changed");
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after)
{
Log.e(TAG, "on text changed");
}
}
Тогда я использовал 2 вышеуказанных класса по этому коду:
ContentEditText et = new ContentEditText(this);
et.addTextChangedListener(new EditTextListener());
Когда я запускаю приведенный выше код, я заменяю текст в тексте редактирования другим текстом, я вижу, что onSelectionChanged
всегда выполняется до onTextChanged
, afterTextChanged
, beforeTextChanged
.
Итак, мой вопрос: есть ли какие-либо методы, которые будут запущены до onSelectionChanged
при замене текста в EditText, и могут быть переопределены?
Спасибо!