Get Editable id in afterTextChanged event

后端 未结 3 1033
孤街浪徒
孤街浪徒 2020-12-11 18:00

I have an Activity that extends TextWatcher to detect changes in certain EditTexts, so it implements:

public void afterTextChanged(Editable s)
3条回答
  •  半阙折子戏
    2020-12-11 18:11

    There's one method to implement this without creating a TextWatcher object for every EditText, but I wouldn't 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's changed EditText
        EditText edit = edits[0];
    }
    

提交回复
热议问题