我想你誤解的東西很重要。 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
傳遞給文本框對象。如果當用戶在框中輸入某些東西時,這些字符將存儲在其他地方,並且只能返回到您的代碼中... 作爲新的字符串 ...當您的代碼調用output.getText()
時。
好球員,我只是去嘗試這是給我5次同樣的回答。它不起作用。我把output.setText(「」);緊接在output.setText(outputString)之前;但outputString不會更改,因此它仍包含較早的塊文本。 – kullalok
發佈完整代碼... –
「緊接在output.setText(outputString)之前」。當然,這不會清除文本,你只是覆蓋它。如果你想清除文本,你必須調用setText(「」)AFTER。 –