在替换EditText中的文本时,将在onSelectionChanged之前运行哪个方法

时间:2011-12-02 17:26:27

标签: android override android-edittext listener

我有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");  
    }   
}

然后我通过以下代码使用了上面的两个类:

ContentEditText et = new ContentEditText(this);
et.addTextChangedListener(new EditTextListener());

当我运行上面的代码时,我用另一个文本替换了edittext中的文本,我看到onSelectionChanged始终在onTextChangedafterTextChangedbeforeTextChanged之前运行。

所以我的问题是:在替换EditText中的文本时,是否会在onSelectionChanged之前运行任何方法,并且可以覆盖?

谢谢!

0 个答案:

没有答案