Typumwandlung View in EditText

  • Antworten:4
  • Bentwortet
Babette R.
  • Forum-Beiträge: 239

15.05.2013, 11:25:14 via Website

Servus,

ich versuche gerade, mich mittels Videotrainings von Galileo Computing in die App-Programmierung einzuarbeiten. Dafür schaue ich mir zunächst das Videokapitel einmal an, danach versuche ich, die Programmierung in Eclipse nachzuarbeiten. Nun bin ich auf ein Problem gestoßen. Ich bin noch ziemlich am Anfang und kenne mich in Eclipse auch noch nicht so gut aus.

Im Video (Android Apps entwickeln von Till Klocke) wird zunächst eine kleine App geschrieben, in der Grad Fahrenheit in Grad Celsius umgerechnet werden soll.

In der public class gibt es also:

private EditText inputFahrenheit;
private EditText inputCelsius;

Und in public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) kommt dann

inputFahrenheit = root.findViewById(R.id.editFahrenheitValue);
inputCelsius = root.findViewById(R.id.editCelsiusValue);

Dabei wird dann eine Fehlermeldung ausgeworfen, dass die Typkonvertierung von View auf EditText nicht möglich ist. Das ist auch alles soweit korrekt. Nun geht Herr Klocke auf die Schnellreparatur "Add cast to EditText" und es wird (EditText) in runden Klammern vor root.findView... gestellt und alles ist in Ordnung.

Klicke ich den Fehlercode an, wird mir diese Schnellreparatur gar nicht angeboten und auch wenn ich händisch (EditText) einfüge, nimmt Eclipse das auch nicht an. Ich nehme an, ich habe irgendetwas nicht geladen, aber ich weiß leider nicht, wo ich nachschauen muss.

Auch findet Eclipse im weiteren Verlauf die Methode getText() nicht - da kommt die Fehlermeldung "Die Methode getText() ist für den Typ EditText nicht definiert"

Kann mir jemand helfen?

Antworten
cryofy
  • Forum-Beiträge: 47

15.05.2013, 11:45:46 via Website

Das mit den runden Klammern nennt sich 'Typanpassung' bzw 'Casting'.
Nachzulesen für primitive Datentypen hier und für Objektdatentypen hier.

Hast Du
1android.widget.EditText;
bei Deinen Imports?

Auf die von dir bezeichnete 'Schnellreperatur' in Eclipse solltest Du Dich nich allzu sehr verlassen. Es ist nämlich keine 'Schnellreperatur', sondern nur eine Hilfe und eine unvollständige Auflistung zur Problemlösung eines Problems X. Ziel sollte es immer sein den eigenen Code zu verstehen, wenn man sich da auf 'Autokorrekturen' verlässt, endet das meist nicht gut.

Gruß

— geändert am 15.05.2013, 11:46:08

Antworten
Babette R.
  • Forum-Beiträge: 239

15.05.2013, 12:04:36 via Website

Danke für deine schnelle Antwort!!!

Das war der Fehler.

Es ging mir ja bei dieser Fehlermeldung nicht darum, diese unbedingt über die Schnellreparatur zu beheben, sondern darum, warum der Fehler auch auftrat, wenn ich händisch (EditText) eingegeben habe. Mir war klar, dass in meinem Code irgendetwas fehlte ... ich wusste nur nicht was.

Danke nochmal!

Antworten
Babette R.
  • Forum-Beiträge: 239

22.05.2013, 12:44:48 via Website

impjor
cryofy meinte, du solltest auch wissen, warum da jetzt (EditText) stehen muss und das kann ich nur bestätigen.

Gruß

Danke dir, das ist mir auch klar, denn die Fehlermeldung hieß korrekt "Typumwandlung View in EditText nicht möglich". "EditText" in runden Klammern macht diese Typumwandlung dennoch möglich - aber nur, wenn android.widget.EditText importiert ist. Dann funzt das ganze sowohl über die Schnellreparatur als auch, wenn ich händisch die Korrektur eingebe. Herr Klocke hatte in seinem Video die auftauchende Fehlermeldung erklärt und auch, wie sie korrigiert werden kann. Aber wenn der Import fehlt, funzt diese Korrektur eben nicht - und diesen Import hat er komentarlos vorausgesetzt bzw. der war in seinem Quellcode bereits vorhanden. Das hab ich aber erst später gesehen ...

Antworten