Ich glaube, Sie etwas sehr Wichtiges sind Missverständnis. Java-Zeichenfolgen sind unveränderlich, dh Sie können sie nicht ändern.
"Wie ändere ich irgendwie den Text in der Zeichenfolge?"
Sie können nicht. Der Text in der Zeichenfolge kann nicht geändert werden. Es ist unveränderlich. Jede "Lösung", bei der der Text in einem String geändert wird, funktioniert NICHT in Java. (Haben Sie das?)
Wenn Sie dies tun:
output.setText(outputString);
outputString = "";
die Zuordnung nicht den Wert ändern, der in dem Textfeld angezeigt wird. Es ändert nur den String, auf den sich die lokale Variable outputString
bezieht.
Und wenn Sie dies tun:
output.setText("");
output.setText(outputString);
es verursacht keine outputString
zu ändern. Es ändert nur den angezeigten Text in nichts und ändert dann sofort den Wert, auf den sich outputString
gerade bezieht.
Wenn Sie den Wert in das Textfeld nichts angezeigt ändern, können Sie dies nur tun,:
output.setText("");
Vielleicht ist die andere Sache, die Sie in Ihrem Denken falsch verstanden habe ist, dass Sie denken, dass diese :
output.setText(outputString);
stellt eine Beziehung zwischen dem Textfeld output
und der Variable outputString
... so dass, wenn der Benutzer in das Feld, die outputString
Variable auf magische Weise aktualisiert werden. Das ist nicht so. In der Tat kann es nicht so sein, weil Sie die Adresse der Variablen nicht übergeben können.
Tatsächlich übergibt output.setText(outputString);
nur den Wert von outputString
an das Textfeld Objekt. Wenn und wenn der Benutzer etwas in die Box eingibt, werden die Zeichen an anderer Stelle gespeichert und nur an Ihren Code zurückgegeben ... als neue Zeichenfolge ... wenn Ihr Code output.getText()
aufruft.
Okay Leute, ich habe gerade versucht, dass gleiche Antwort, die 5-mal zu mir gegeben wurde. Es funktioniert nicht. Ich setzte output.setText (""); unmittelbar vor output.setText (outputString) ;, aber outputString ändert sich nicht, daher enthält es immer noch den früheren Textabschnitt. – kullalok
schreiben Sie den vollen Code ... –
"unmittelbar vor output.setText (outputString)". Natürlich würde das den Text nicht löschen, Sie überschreiben ihn nur. Wenn der Text gelöscht werden soll, müssen Sie setText ("") AFTER aufrufen. –