Daten an Methode übergeben von EditText

  • Antworten:6
  • Bentwortet
Marcel Bruckmann
  • Forum-Beiträge: 5

29.06.2013, 20:50:31 via Website

Hallo,

ich habe folgendes Problem:

Ich möchte durch eine Klick auf einen Button den Text eines Edittext auslesen und ihn an einen Schalter übergeben der natürlich einen String erwartet. So weit so gut. Es handelt sich um ein Quiz.

1public void onClick(View v) {
2
3EditText editText = (EditText) findViewById(R.id.et_eingabe);
4 String inhaltbox2 = editText.getText().toString();
5
6 spiel.auswerten(inhaltbox2 , this);
Das ist mein EditText. Wenn ich das so mache gibt es in Eclipse keine Fehler. Wenn ich das Programm aber starte und auf den Button klicke, sagt er mir das die Antwort auf die Frage falsch ist.

Ohne jetzt groß meine Code zu veröffentlichen, habe ich folgendes ausprobiert:


1public void onClick(View v) {
2
3EditText editText = (EditText) findViewById(R.id.et_eingabe);
4 String inhaltbox2 = editText.getText().toString();
5
6 spiel.auswerten("loesung", this);

Auch hier gibt es keine Fehler in Eclipse, aber:

Wenn ich in EditText jetzt eintippe "loesung", sagt er mir das die Antwort richtig ist.

So wie ich das verstehe ist inhaltbox2 kein String? Denn "loesung" ist ja auch ein String und der Schalter verlangt ja auch einen String, aber trotzdem leitet der den String inhaltbox2 nicht als String weiter.

Danke für die Hilfe.

Antworten
Christian
  • Forum-Beiträge: 307

29.06.2013, 21:10:21 via Website

Hi Marcel,

haste mal geschaut was in inhaltbox2 steht wenn du deinen Text aus der EditText ausliest?

mfg Christian

Antworten
Marcel Bruckmann
  • Forum-Beiträge: 5

29.06.2013, 21:25:31 via Website

Also wenn ich einen toast ausgeben lasse, sagt er mir bei beiden das Wort "loesung" an.

Habe auch schon versucht mit trim() eventuelle Leerzeichen zu löschen aber auch das ohne Erfolg.

Antworten
Gelöschter Account
  • Forum-Beiträge: 115

29.06.2013, 23:48:13 via Website

Hallo Marcel,

wäre es möglich, dass du deine auswerten Methode postet? Möglicherweise liegt nicht der Fehler beim übergeben des Strings, sondern beim Abfragen ob die Antwort richtig ist.

Grüße

Teste dein IT-Wissen! - IT Quiz

Antworten
Marcel Bruckmann
  • Forum-Beiträge: 5

30.06.2013, 00:01:50 via Website

1void auswerten(String schalter, Activity activity_enter){
2 if(!fragen[aktFrage].richtig(schalter)){
3 if(gewinnstufe == 0){
4 Toast.makeText(activity_enter, "Leider verloren", Toast.LENGTH_LONG).show();
5
6 }
7 else{
8 String str = "Du hast Gewinnstufe " + gewinnstufe + " erreicht!";
9 Toast.makeText(activity_enter, str, Toast.LENGTH_LONG).show();
10 }
11
12
13 }else{
14 if(aktFrage < ANZAHL_FRAGEN-1){
15 fragen[++aktFrage].anzeigen(activity_enter);
16
17 gewinnstufe++;
18 ((ProgressBar) activity_enter.findViewById(id.progressBar1)).setProgress(gewinnstufe);
19
20 Toast.makeText(activity_enter, R.string.richtigeantwort, Toast.LENGTH_LONG).show();
21
22 }
23 else{
24 gewinnstufe++;
25 ((ProgressBar) activity_enter.findViewById(id.progressBar1)).setProgress(gewinnstufe);
26 String str = "Alles richtig";
27 Toast.makeText(activity_enter, str, Toast.LENGTH_LONG).show();
28
29
30 }
31 }
32 }

1public boolean richtig(String eingegeben){
2
3 if(eingegeben== this.correctl)
4 return true;
5 else
6 return false;
7 }

Bei der ersten Frage kommt dann sofort "Leider verloren". Er müsste ja in dem Fall false ausgeben. Aber daran kann es ja nicht liegen oder? Denn wenn ich den String "loesung" so übergebe ohne aus der Edittext den Wert auszulesen funktioniert es ja.

Antworten
impjor
  • Forum-Beiträge: 1.793

30.06.2013, 00:40:26 via App

Nie, nie, nie, nie, nie, nie niemals in Java Strings mit == vergleichen!!

Nur bei primitiven Datentypen(kleingeschrieben: int, char, double, ...) geht das.
== vergleicht, ob das die selben Objekte sind(also die selbe Refernz), nicht, ob der Inhalt gleich ist.

Inhaltliche Vergleiche immer mit a.equals(b);
Gruß

— geändert am 30.06.2013, 00:41:04

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten
Marcel Bruckmann
  • Forum-Beiträge: 5

30.06.2013, 09:49:05 via Website

geilomat. funktioniert. vielen Dank impjor. Ich werde es mir an die Wand schreiben :grin:

Antworten