There is one way to implement this without creating a TextWatcher object for each EditText , but I would not use it:
protected void onCreate(Bundle savedInstanceState) { // initialization... EditText edit1 = findViewById(R.id.edit1); edit1.addTextChangedListener(this); EditText edit2 = findViewById(R.id.edit1); edit2.addTextChangedListener(this); } private static CharSequence makeInitialString(EditText edit) { SpannableStringBuilder builder = new SpannableStringBuilder(); builder.setSpan(edit, 0, 0, Spanned.SPAN_MARK_MARK); return builder; } public void afterTextChanged(Editable s) { EditText[] edits = s.getSpans( 0, s.length(), EditText.class ); if (edits.length != 1) { // this mustn't happen } // here changed EditText EditText edit = edits[0]; }
Michael
source share