Bedingung mit String nie erfüllt

F

fdsa

Neues Mitglied
0
Hallo
Ich hab basierend auf dem Youtube-Tutorial (Android Apps Programmieren #3 Rechner App (German/ Deutsch) (HD) - YouTube
) eine Rechner-App erstellt.
Dabei hab ich u. a. ein Textfeld, das ich auf den Inhalt prüfen möchte. Doch leider funktioniert das nicht wie ich mir das vorstelle. Der entscheidende Code lautet:
Code:
     EditText Feld1 = (EditText) findViewById(R.id.value1);
     EditText Feld2 = (EditText) findViewById(R.id.value2);
     if( Feld1.getText().toString() == "2" ) {
      Feld2.setText(Feld1.getText());
      return;
     }
Die Bedingung wird jedoch bei Eingabe von 2 ins Textfeld "Feld1" nicht erfüllt.
Woran liegt das?
Besten Dank
Markus
 
Zuletzt bearbeitet von einem Moderator:
Du kannst einen String nicht mit == auslesen bzw. 'vergleichen' , sondern nur mit equals:

Code:
   if( Feld1.getText().toString().equals( "2" )) {

Mfg keinbrain
 
Ah, besten Dank, nun funktionierts :)
 
Das ist glaub ich einer der ersten Fehler, den jeder Anfänger macht ^^ Objektorientierung ist das Schlagwort ;)
 
Kurze Erkläung dazu, warum es nicht funktioniert.
Der "=="-Operator vergleicht nicht den Inhalt der Objekte, sondern die Referenz der Objekte (hier Strings) auf den Platz im Arbeitspeicher.
Dieser wird nie gleich sein außer man schreibt vorher str2 = str1 und vergleicht dann.

Z.B. bei Integern klappt das ganze, weil Integer keine Objekte sondern primitive Datentypen sind.
 
  • Danke
Reaktionen: h4kkin

Ähnliche Themen

B
Antworten
4
Aufrufe
433
bb321
B
FabianDev
Antworten
5
Aufrufe
531
swa00
swa00
MES
Antworten
10
Aufrufe
788
MES
MES
Zurück
Oben Unten