Android Programmieren-Objekt-Konstruktor in Klammern

  • 2 Antworten
  • Neuester Beitrag
Diskutiere Android Programmieren-Objekt-Konstruktor in Klammern im Android App Entwicklung im Bereich Betriebssysteme & Apps.
V

Vtrae

Ambitioniertes Mitglied
Hallo Leute,

Ich beschäftige mich seit neuestem mit dem Programmieren von Android Apps und habe davor Java mit dem Tutorial von gailer-net.de gelernt.
Jetzt bin ich am Beginn des Tutorials von Android Developers(Starting a second activity) und verstehe folgenden Codeschnipsel nicht:
Code:
public void sendMessage(View view) {
  Intent intent = new Intent(this, DisplayMessageActivity.class);
  EditText editText = (EditText) findViewById(R.id.edit_message);
}
Meiner Ansicht nach wird durch "EditText editText = new EditText(...)" ein neues Objekt erstellt. Hier steht jetzt aber das "EditText" hinter dem gleichzeichen in Klammern. Kann mir jemand erklären, wo der Unterschied liegt, und was diese Codezeile genau macht?

Danke im Voraus,
Vtrae
 
Jaiel

Jaiel

Experte
Also der Parameter in findViewByID ist ein Integer in der R datei. Diese wird automatisch von den android SDK Tools angelegt und steht in Verbindung mit einem XML file wo die Eigenschaften des Edittext in Form von XML deklariert sind. Der Cast zum Edittext ist notwendig damit die Richtige Unterklasse der View Klasse erkannt wird denn von View erben so manche Klassen wie Buttons ImageViews Edittext Textviews etc. pp.

Zum B'eispiel hast du dann in einem XML file einen Edittext deklairiert und ihm die ID edit_message als String gegeben. So sucht sich das System zur LAufzeit während des Inflatens genau diese Deklaration heraus um daraus dein Edit text dann zu erstellen.(Besser gesagt die Android SDK Tools erstellen ein Eintrag in der R Datei und dort wird dann mittels der ID auf die richtige XML Datei verlinkt....probiers mal aus erstelle zum Beispiel ein paar views mit deinen ID wie meine_View_ID oder so und builde das ganze sofort wird ein Eintrag in der R Datei erscheinen)

XML ist einfach eine Skriptsprache die Datenstrukturen beschreibt, eine möchtige dazu wenn auch sehr aufgebläht oder gerade deswegen wie man es sehen möchte.

Wenn du jetzt EditText editText=new EditText(); im Code angibst dann ahst du ebenfalls ein Edittext erstellt aber dann musst du alle Parameter noch im Code deklarieren wie zum Beispiel Margins Paddings Position, ob in einem Container oder freischwebend etc. pp.

Glaub mir das werden locker mal an die 100 zeilen Code sowas zu amchen meistens


Ich denke man kann die Menge an Schreibarbeit von in-Code deklarationen gegenüber XML als 10:1 angeben

Das soll dir ein guter Rat sein XML zu benutzen und nur dann wenn es nötig ist etwas in Code zu amchen!


Das Intent verstehst du aber und wofür das genutzt wird?!
 
Zuletzt bearbeitet:
V

Vtrae

Ambitioniertes Mitglied
Achso ja jetzt hab ichs das EditText in klammern bedeutet dann dass eine Typ Umwandlung in EditText erfolgen soll richtig? Dass es das auch noch gibt hatte ich gar nicht mehr im Hinterkopf.
Also wenn ich das jetzt richtig verstanden habe, liegt eine Beschreibung von meinem Objekt EditText in einer XML-Datei vor und wenn ich jetzt das Objekt erstelle dann wird die Beschreibung aus der XML-Datei genommen und in ein EditText Objekt umgewandelt, auf das die variable EditText dann verweist(tut mir leid wenn das jetzt nicht ganz korrekt oder schwer verständlich ist, aber es fällt mir noch recht schwer Vorgänge in Java korrekt zu beschreiben)
Das mit intent hab ich zumindest so ungefähr verstanden. So wie ich das verstanden habe dient intent auch, um xml -Dateien und java-programme miteinander zu verknüpfen. Wenn ich in meinem Programm auf den button Klicks sendet der ein intent an das Java programm , welches dann darauf reagiert. Stimmt das so ungefähr? :confused2: danke für die Hilfe :)
 
Ähnliche Themen - Android Programmieren-Objekt-Konstruktor in Klammern Antworten Datum
8
6
5