Я думаю, вы недоразумение что-то очень важное. Строки Java неизменяемы, что означает, что вы не можете их изменить.
«Как я могу каким-то образом изменить текст в строке?»
Вы не можете. Текст в строке не может быть изменен. Это неизменно. Любое «решение», которое включает в себя изменение текста в строке, не будет работать на Java. (Понял?)
Когда вы сделаете это:
output.setText(outputString);
outputString = "";
уступка не изменяет значение, которое отображается в текстовом поле. Он просто меняет строку, на которую ссылается локальная переменная outputString
.
И когда вы это делаете:
output.setText("");
output.setText(outputString);
не вызывает outputString
изменить. Он просто меняет отображаемый текст на ничто, а затем немедленно меняет его на то, что в настоящее время относится к outputString
.
Если вы хотите изменить значение, отображаемое в текстовом поле ни к чему, просто сделать это:
output.setText("");
Возможно другое дело, что вы ошибались в своем мышлении, что вы думаете, что это :
output.setText(outputString);
устанавливает связь между текстовым полем output
и переменной outputString
... так что, когда пользователь вводит в поле, переменная outputString
волшебно обновляется. Это НЕ так. На самом деле это НЕ МОЖЕТ быть, потому что вы не можете передать адрес переменной.
Фактически, output.setText(outputString);
только передает значение из outputString
в текстовое поле объекта. Если и когда пользователь вводит что-то в поле, символы хранятся в другом месте и возвращаются только в ваш код ... в качестве новой строки ... когда ваш код вызывает .
Okay, ребята, я просто попытался тот же самый ответ, который был дан мне в 5 раз. Это не работает. Я положил output.setText (""); непосредственно перед output.setText (outputString) ;, но outputString не изменяется, поэтому он все еще содержит более ранний фрагмент текста. – kullalok
отправить полный код ... –
«непосредственно перед выходом.setText (outputString)». Конечно, это не очистит текст, вы просто перезапишите его. Если вы хотите, чтобы текст был очищен, вы должны вызвать setText ("") ПОСЛЕ. –