"CustomTextWatcher" Idee mit, ich getan, dass
1) eine neue TextWatcherListener Schnittstelle crated:
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) erstellt und verwendet statt EditText (in meinem Fall EditTextExtended):
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) Also, wo Sie diesen Code benötigen schreiben:
myEditTextExtended.addTextChangedListener(this) //Let implement TextWatcherExtendedListener methods
4) verwenden sie:
@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
}
Nun, lassen Sie mich wissen, was denken Sie.
Mögliche Duplikat [Wie Einzel TextWatcher für mehrere EditTexts benutzen?] (Http://stackoverflow.com/questions/5702771/how-to-use-single-textwatcher-for-multiple-edittexts) –
@SkyKelsey Die Antwort, die du geschrieben hast, erstellt tatsächlich mehrere Instanzen von TextWatcher, daher denke ich, dass das nicht die perfekte Antwort auf das ist, was von OP gefragt wurde, meine Frage bezieht sich auf das Identifizieren der einzelnen EditText in einer TextWatcher-Methode. –
https://github.com/henrychuangtw/AutoInsertEditText – HenryChuang