Text aus EditText auslesen und als String speichern

  • Antworten:8
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 11

12.12.2012 18:43:08 via Website

Hallöchen zusammen.

Nun, ich habe mich hier registriert weil ich glaube dass ihr die Antwort zu meinem Problem kennt. Ich habe bereits einige Zeit mit googeln verbracht - mit eher mässigen Erfolg.

Ich programmiere momentan zu ersten Mal Android und das ist eine Vocabulaire-App (tönt banal, findet aber in meiner Schule Anklang). Beim drücken eines Buttons soll der Überprüfvorgang aller eingebenen Wörter erfolgen. Das heisst, bei allen Textfeldern soll der Text ausgelesen werden, in einen String umgewandelt werden und anschliessend mit der Lösung verglichen werden.

Nun, das ist mein bisheriger Fortschritt:
1View text3e = null;
2 text3 = Integer.valueOf(text3e.getContext().toString());
3 text3e = findViewById(R.id.text2);
4
5 if (text3.equals(intéressant)) {
6
7 correct = correct + 1 ;
8
9 }
10
11 else {
12
13 incorrect = incorrect + 1;
14
15 }

&' die XML-Datei

1<ScrollView
2 android:layout_width="match_parent"
3 android:layout_height="match_parent" >
4
5 <RelativeLayout
6 android:layout_width="match_parent"
7 android:layout_height="394dp" >
8
9 <TextView
10 android:id="@+id/title"
11 android:layout_width="wrap_content"
12 android:layout_height="wrap_content"
13 android:layout_alignParentTop="true"
14 android:layout_centerHorizontal="true"
15 android:text="Envol 8 / Unité 16"
16 android:textSize="35sp" />
17
18 <EditText
19 android:id="@+id/text1"
20 android:layout_width="wrap_content"
21 android:layout_height="wrap_content"
22 android:layout_alignBottom="@+id/word1"
23 android:layout_alignParentRight="true"
24 android:ems="10" />
25
26
27 <TextView
28 android:id="@+id/word2"
29 android:layout_width="wrap_content"
30 android:layout_height="wrap_content"
31 android:layout_alignBottom="@+id/text2"
32 android:layout_alignLeft="@+id/word1"
33 android:text="erstaunlich"
34 android:textSize="20sp" />
35
36 <EditText
37 android:id="@+id/text2"
38 android:layout_width="wrap_content"
39 android:layout_height="wrap_content"
40 android:layout_alignParentRight="true"
41 android:layout_below="@+id/text1"
42 android:ems="10" />
43
44 <EditText
45 android:id="@+id/word3"
46 android:layout_width="wrap_content"
47 android:layout_height="wrap_content"
48 android:layout_alignParentRight="true"
49 android:layout_below="@+id/text2"
50 android:ems="10" >
51
52 <requestFocus />
53 </EditText>
54
55 <TextView
56 android:id="@+id/text3"
57 android:layout_width="wrap_content"
58 android:layout_height="wrap_content"
59 android:layout_alignBottom="@+id/word3"
60 android:layout_alignLeft="@+id/word2"
61 android:text="überraschend"
62 android:textSize="20sp" />
63
64 <EditText
65 android:id="@+id/text4"
66 android:layout_width="wrap_content"
67 android:layout_height="wrap_content"
68 android:layout_alignParentRight="true"
69 android:layout_below="@+id/word3"
70 android:ems="10" />
71
72 <TextView
73 android:id="@+id/word4"
74 android:layout_width="wrap_content"
75 android:layout_height="wrap_content"
76 android:layout_alignBottom="@+id/text4"
77 android:layout_alignLeft="@+id/text3"
78 android:text="langweilig"
79 android:textSize="20sp" />
80
81 <Button
82 android:id="@+id/button1"
83 android:layout_width="wrap_content"
84 android:layout_height="wrap_content"
85 android:layout_above="@+id/text1"
86 android:layout_alignParentLeft="true"
87 android:layout_alignParentRight="true"
88 android:text="Überprüfen"
89 android:onClick="überprüfen" />
90
91 <TextView
92 android:id="@+id/word1"
93 android:layout_width="wrap_content"
94 android:layout_height="wrap_content"
95 android:layout_alignParentLeft="true"
96 android:layout_below="@+id/title"
97 android:layout_marginLeft="29dp"
98 android:layout_marginTop="68dp"
99 android:text="interessant"
100 android:textSize="20sp" />
101
102 </RelativeLayout>
103</ScrollView>

Irgendwer eine Idee, wie man das lösen kann? Herzlichen Dank für jeden Vorschlag !

comdy
  • Forum-Beiträge: 2.545

12.12.2012 19:36:29 via Website

1 View text3e = null;
2 text3 = Integer.valueOf(text3e.getContext().toString());
3 text3e = findViewById(R.id.text2);

Da kommt der Code dann ja nicht besonders weit :P

Daher erstmal die Zeilen 2 und 3 vertauschen.
Abgesehen davon:
- "text3" ist ein int? Interessante Namenswahl ;)
Aus der Namenswahl hätte ich jetzt eher geschlossen, das der User eine Zeichenfolge (die Antwort/Übersetzung/whatever) eingibt und die App diese Zeichenfolge dann mit dem korrekten Ergebnis vergleicht.

Vielleicht beschreibst du das noch mal etwas genauer, wenn es jetzt noch nicht so funktioniert, wie du es gerne hättest.
  • Forum-Beiträge: 11

15.12.2012 17:06:28 via Website

and dev

Aus der Namenswahl hätte ich jetzt eher geschlossen, das der User eine Zeichenfolge (die Antwort/Übersetzung/whatever) eingibt und die App diese Zeichenfolge dann mit dem korrekten Ergebnis vergleicht.

Genau so etwas stelle ich mir vor. :)
  • Forum-Beiträge: 2.545

16.12.2012 00:57:11 via Website

...und wozu ist dann das hier?
text3 = Integer.valueOf(text3e.getContext().toString());
  • Forum-Beiträge: 11

16.12.2012 09:52:59 via Website

Wie gesagt, ich habe diese Codezeile mir rausgegoogelt und damit absolut keine Ahnung ob dies so funktionieren kann..
  • Forum-Beiträge: 2.545

16.12.2012 11:51:21 via Website

Also hast du dir die vermeintliche Lösung irgendwo her kopiert, wogegen ja zunächst einmal nichts spricht.
Jetzt funktioniert die Kopie aber nicht, und dein Lösungsansatz ist jetzt nicht, den Code zu verstehen uns so das Problem zu erkennen, sondern dir im Forum einfach einen neuen Schnipsel machen zu lassen?
...und bei der nächsten Funktion, die du integrieren willst?

Wo ist da der Lerneffekt? Ich meine, du willst doch am Ende selber Apps herstellen können, oder nicht?
  • Forum-Beiträge: 11

16.12.2012 12:53:24 via Website

Klar ist das Ziel am Schluss, selber Apps herzustellen. Aber solang ich selber noch nichts kapiere brauche vorerst einige Vorgefertigte Lösungen, damit ich die Zusammenhänge verstehen und diese in einer zweiten App wiederzuverwenden.

Diese Funktion ist die einzige, die nicht funktioniert. Der Rest läuft perfekt. Ich bräuchte einfach nur noch diese Funktion, am besten mit einer Erklärung, damit ich's verstehe.
  • Forum-Beiträge: 2.545

16.12.2012 13:10:53 via Website

Eingabefeld besorgen:
EditText e = (EditText)findViewById(R.id.deinEingabefeld);

Inhalt besorgen:
String eingabe = e.getText().toString();

Vergleichen:
if (eingabe.equalsIgnoreCase(richtigeAntwort)) ...

Der Rest, der "perfekt läuft", ist genauso zusammenkopiert und inhaltlich nicht verstanden?
  • Forum-Beiträge: 11

16.12.2012 13:24:41 via Website

Nein, gelernt aus dem offziellen Android-Developer-Einführungskurs von Google und einem Java-Onlinekurs. Name weiss ich nicht mehr. Aber danke für den Code.