,我做到了
1)木箱新TextWatcherListener接口:
public interface TextWatcherExtendedListener extends NoCopySpan
{
public void afterTextChanged(View v, Editable s);
public void onTextChanged(View v, CharSequence s, int start, int before, int count);
public void beforeTextChanged(View v, CharSequence s, int start, int count, int after);
}
2)创建和使用EditTextExtended EditText上,而不是(在我的情况):
public class EditTextExtended extends EditText
{
private TextWatcherExtendedListener mListeners = null;
public EditTextExtended(Context context)
{
super(context);
}
public EditTextExtended(Context context, AttributeSet attrs)
{
super(context, attrs);
}
public EditTextExtended(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
}
public void addTextChangedListener(TextWatcherExtendedListener watcher)
{
if (mListeners == null)
{
mListeners = watcher;
}
}
public void removeTextChangedListener(TextWatcherExtendedListener watcher)
{
if (mListeners != null)
{
mListeners = null;
}
}
void sendBeforeTextChanged(CharSequence text, int start, int before, int after)
{
if (mListeners != null)
{
mListeners.beforeTextChanged(this, text, start, before, after);
}
}
void sendOnTextChanged(CharSequence text, int start, int before,int after)
{
if (mListeners != null)
{
mListeners.onTextChanged(this, text, start, before, after);
}
}
void sendAfterTextChanged(Editable text)
{
if (mListeners != null)
{
mListeners.afterTextChanged(this, text);
}
}
}
3)所以,你需要写这个代码的地方:
myEditTextExtended.addTextChangedListener(this) //Let implement TextWatcherExtendedListener methods
4)使用它们:
@Override
public void onTextChanged(View v, CharSequence s, int start, int before, int count)
{
//Tested and works
//do your stuff
}
@Override
public void beforeTextChanged(View v, CharSequence s, int start, int count, int after)
{
//not yet tested but it should work
}
@Override
public void afterTextChanged(View v, Editable s)
{
//not yet tested but it should work
}
好了,让我知道你怎么想。
的可能的复制[如何使用单TextWatcher多个EditTexts?](http://stackoverflow.com/questions/5702771/how-to-use-single-textwatcher-for-multiple-edittexts) – 2015-10-27 04:04:37
@SkyKelsey你写的答案实际上是创建TextWatcher的多个实例,因此我认为这不是OP提出的问题的完美答案,关于我的问题是关于在TextWatcher接口方法中识别每个EditText。 – 2015-10-29 12:48:26
https://github.com/henrychuangtw/AutoInsertEditText – HenryChuang 2017-01-18 02:12:12