Вы присвоили editText.getText()
переменной.Это означает, что его значение не изменится.
Когда вы вызываете setText()
, исходный текст перезаписывается новым CharSequence;исходный экземпляр Editable, который возвращает getText()
, больше не является частью TextView, поэтому ваша переменная editable
больше не присоединяется к TextView.
Посмотрите на TextView's getEditableText()
(эточто EditText вызывает из getText()
):
public Editable getEditableText() {
return (mText instanceof Editable) ? (Editable) mText : null;
}
Если mText
является редактируемым объектом, он вернет его.В противном случае он вернет null
.
setText()
, в конце концов перейдет к setTextInternal()
:
private void setTextInternal(@Nullable CharSequence text) {
mText = text;
mSpannable = (text instanceof Spannable) ? (Spannable) text : null;
mPrecomputed = (text instanceof PrecomputedText) ? (PrecomputedText) text : null;
}
Как видите, он просто перезаписывает поле mText
это означает, что ваш редактируемый экземпляр больше не является экземпляром, имеющимся у EditText.
TextView.java