Java / Android: Wo liegt der Fehler bei dieser Eingabenüberprüfung?

1 Antwort

Die Variablen codetext und codetext2 referenzieren doch auf zwei EditText-Instanzen. Da diese beiden Objekte nie identisch sein werden, wird die Bedingung in Zeile 34 auch nie erfüllt.

Für einen Vergleich der Eingaben in diese beiden Felder müsstest du dir erst einmal ihren Inhalt (den eingegebenen Text) holen.

String codeTextContent = codeText.getText().toString();
String codeText2Content = codeText2.getText().toString();

In dem Zuge würde ich noch die Namen der beiden Variablen anpassen. Nach strikter camelCase-Schreibart würde das erste T großgeschrieben werden (code text => codeText).

Die beiden Strings kannst du in Folge mittels equals vergleichen.

if (codeTextContent.equals(codeText2Content)) {
  /* do something ... */
}

Die equals-Methode prüft bei zwei Strings auf deren Wertgleichheit. Würdest du den Vergleichsoperator == verwenden, würde dieser stattdessen schauen, ob beide String-Objekte identisch zueinander sind (also in der gleichen internen Speicherstelle liegen).