EditText in TextView anzeigen funktioniert nicht

  • 6 Antworten
  • Letztes Antwortdatum
C

Christian24

Neues Mitglied
0
Hallo

Bin noch relativ neu in der Android Entwicklung und entwickle gerade meine erste app. Dort habe ich jetzt eine TextView ein EditText und ein Button. Wenn man auf den Button klickt soll das was im EditText steht in der TextView angezeigt werden. Sobald man aber den Button drückt stürzt das Programm ab und ich hab keine ahnung warum. Hoffe ihr könnt mir helfen.


Code:
[LEFT]answer= (TextView) findViewById(R.id.Spiel5_Antwort);[/LEFT]
antwort = (EditText) findViewById(R.id.Spiel5_AntwortEingabe);
Code:
[LEFT]@Override 
public void onClick(View v) {
Antwort = antwort.getText().toString();
antwort.setText("");
Auswertung();[/LEFT]
}

Code:
[LEFT]public void Auswertung () {
answer.setText(Antwort);[/LEFT]
}


LG Christian
 
Was ist denn der logcat?

Gesendet von meinem LG-P880 mit der Android-Hilfe.de App
 
Hier die logcat :

06-21 15:02:51.440: E/AndroidRuntime(2600): FATAL EXCEPTION: main
06-21 15:02:51.440: E/AndroidRuntime(2600): java.lang.NullPointerException
06-21 15:02:51.440: E/AndroidRuntime(2600): at de.braintrain.braintraining.Spiel5.onClick(Spiel5.java:279)
06-21 15:02:51.440: E/AndroidRuntime(2600): at android.view.View.performClick(View.java:2485)
06-21 15:02:51.440: E/AndroidRuntime(2600): at android.view.View$PerformClick.run(View.java:9080)
06-21 15:02:51.440: E/AndroidRuntime(2600): at android.os.Handler.handleCallback(Handler.java:587)
06-21 15:02:51.440: E/AndroidRuntime(2600): at android.os.Handler.dispatchMessage(Handler.java:92)
06-21 15:02:51.440: E/AndroidRuntime(2600): at android.os.Looper.loop(Looper.java:130)
06-21 15:02:51.440: E/AndroidRuntime(2600): at android.app.ActivityThread.main(ActivityThread.java:3687)
06-21 15:02:51.440: E/AndroidRuntime(2600): at java.lang.reflect.Method.invokeNative(Native Method)
06-21 15:02:51.440: E/AndroidRuntime(2600): at java.lang.reflect.Method.invoke(Method.java:507)
06-21 15:02:51.440: E/AndroidRuntime(2600): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
06-21 15:02:51.440: E/AndroidRuntime(2600): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
06-21 15:02:51.440: E/AndroidRuntime(2600): at dalvik.system.NativeStart.main(Native Method)

Der ursprüngliche Beitrag von 15:04 Uhr wurde um 15:07 Uhr ergänzt:

laut Logcat liegt der Fehler hier:

Antwort = antwort.getText().toString();
 
Dann würde ich ja mal gucken was da Null ist.
Entweder ist antwort schon null weil es die view nicht gibt.
oder aber.getText() liefert null zurück, was aber eigentlich nicht sein sollte meine ich.

somit würde ich sagen: antwort ist null, weil
findViewById(R.id.Spiel5_AntwortEingabe)
null zurück gibt.

BTW:
du solltest dir mal Gedanken um die Benamung deiner variablen machen.
answer, antwort und Antwort?
Wie soll man da jemals wieder durchblicken?
 
Ich habe das Problem jetzt gelöst! Ich hatte antwort und answer in der onCreate() Methode definiert. Ich wusste nicht das dass einen Fehler auslöst. Habe jetz alles in die Auswertung() Methode geschrieben.

Code:
public void Auswertung () {
answer= (TextView) findViewById(R.id.Spiel5_Antwort);
antwort = (EditText) findViewById(R.id.Spiel5_AntwortEingabe);
Antwort = antwort.getText().toString();
antwort.setText("");
answer.setText(Antwort);[/LEFT]
}
[LEFT]

LG Christian

P.S.: Ja bei den Variablen könnte ich ein wenig kreativer sein :)
 
Ja bei den Variablen könnte ich ein wenig kreativer sein
Nein. Du MUSST "kreativer" werden. Ober um es ganz richtig auszudrücken... Variablennamen müssen aussagekräftig sein, camelCase sein, und eindeutig :D

lg. Dagobert
 
Christian24 schrieb:
Ich habe das Problem jetzt gelöst! Ich hatte antwort und answer in der onCreate() Methode definiert. Ich wusste nicht das dass einen Fehler auslöst. Habe jetz alles in die Auswertung() Methode geschrieben.

Du kannst das problemlos in onCreate machen, nur muss der Aufruf von setContentView zuerst kommen.
 
Zurück
Oben Unten