Absturz bei Funktionsaufruf durch android:onClick

  • 4 Antworten
  • Letztes Antwortdatum
S

shantejo

Neues Mitglied
3
Hallo,

Ich bin erst seit ein paar Tagen bei der Android-Programmierung und sitze gerade vor einem Problem, wo ich ich keine Idee habe, wie ich es beheben kann...

Und zwar geht es um eine Passwort-Vergessen-Funktion. Man hat ein EditText, wo man seine mailadresse eingeben kann, einen OK-Button und ein TextView, wo eine meldung ausgegeben wird.

Hier der Code zu den Views:

<EditText
android:id="@+id/etMailadresse"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="317dip"
android:ems="10"
android:inputType="text"
android:textSize="20sp" />

<Button
android:id="@+id/bOK"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/etMailadresse"
android:layout_below="@+id/etMailadresse"
android:layout_marginTop="15dip"
android:text="@string/sOK"
android:onClick="vergessenOK" />

<TextView
android:id="@+id/tvAbgeschickt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/tvMailadresseEingeben"
android:layout_alignLeft="@+id/tvMailadresseEingeben"
android:layout_marginBottom="50dip"
android:textSize="15sp" />

Hier der Code der Funktion:


public void vergessenOK(View view) {

TextView abgeschickt = (TextView)findViewById(R.id.tvAbgeschickt);
EditText mailadresse = (EditText)findViewById(R.id.etMailadresse);
String adresse = mailadresse.getText().toString();

mailadresse.setText("");

if(!(adresse.equals(""))) {

abgeschickt.setText("Es wurde ein Mail zum Zurücksetzen ihres Passwortes\n" +
"an die Adresse " + adresse + " gesendet.");
}
else {
abgeschickt.setText("Es wurde keine Adresse angegeben");
}

abgeschickt.setTextColor(Color.RED);
}

In der LogCat steht folgede Meldung:

Caused by: java.lang.ClassCastException: android.widget.Button cannot be cast to android.widget.EditText
at com.example.protoyp001.Main.vergessenOK(Main.java:67)

..das ganze klingt als ob irgendwo der Button zu einem EditText konvertiert werden würde..Allerdings ist die einzige Konvertierung ja

(EditText)findViewById(R.id.etMailadresse);

und das ist von View zu EditText...Oder übersehe ich das was?

Hab echt keine Idee, wäre toll wenn mir jemand helfen könnte.
 
Code bitte immer den entsprechenden Tag verpacken, sonst ist es schlecht lesbar.

Ich sehe da gerade irgendwie auch keinen Fehler. Vielleicht einfach mal das Projekt neu builden und vorher ein "Clean" machen.
Ansonsten einfach mal das Objekt genauer angucken was du da bekommst bzw. welches es ist. An der Stelle "(EditText)findViewById(R.id.etMailadresse);" musst du ja irgendeinen Button bekommen und dort mal gucken welcher das ist, aber probier zuerst das andere aus.
 
Bei deinem Code sehe ich keinen Fehler. Habe auch mal bei mir ein neues Android Projekt erstellt und deinen Code 1:1 so verwendet. Abgesehen davon, dass er tvMailadresseEingeben nicht findet, klappt alles problemlos. Ich kann ins Feld etwas eingeben, den Button klicken und sehe dann im TextView die Ausgabe.

Du könntest mal versuchen, die Datei R.java im Ordner gen zu löschen, Eclipse sollte sie dann gleich neu erstellen. Eventuell ist die mal nicht richtig aktualisiert worden. Falls die Datei nach dem Löschen nicht neu erstellt wird, heisst das im Normalfall, dass irgendwas mit deinem Layout nicht stimmt.
 
okay..jetzt funktioniert es bei mir ebenfalls..

komisch, aber danke für die Tipps!
 
shantejo schrieb:
okay..jetzt funktioniert es bei mir ebenfalls..

komisch, aber danke für die Tipps!

Willkommen in der Softwareentwicklung :laugh:
 

Ähnliche Themen

M
Antworten
21
Aufrufe
1.200
swa00
swa00
Mr-Fisch
Antworten
5
Aufrufe
908
migi01
migi01
Mr-Fisch
Antworten
8
Aufrufe
963
Mr-Fisch
Mr-Fisch
M
Antworten
9
Aufrufe
741
mkuz24
M
A
Antworten
5
Aufrufe
670
swa00
swa00
Zurück
Oben Unten