Aus dem Kurs: Android-Apps entwickeln: Das User Interface

Zwei XML-Layoutdateien miteinander verbinden – Tutorial zu Android

Aus dem Kurs: Android-Apps entwickeln: Das User Interface

Zwei XML-Layoutdateien miteinander verbinden

In diesem Video gehen wir auf die Besonderheit der Basic Activity ein. Die Basic Activity ist wie bereits angesprochen etwas modularer als eine normale Empty Activity. Die Basic Activity besteht aus zwei Layout-Files, die wir hier bereits benannt haben. Hier möchte ich Ihnen den direkten Vergleich einmal näherbringen. Um das deutlich zu machen, generiere ich mir hier mal schnell eine Test Activity. Die wird auch nicht bestehen bleiben. Das brauchen Sie auch nicht selber mit anzulegen, einfach nur kurz zu schauen. Ich generiere mir jetzt hier eine Activity und nehme dort eine Empty Activity TestActivity, bestätige das mit Enter, sage OK und dann sehen wir, hier gibt es einen Layout-File ebenfalls mit einem ConstraintLayout. Sie sehen, der ist jetzt hier komplett leer. Da steht nichts drin, aber wir haben halt auch nur einen Layoutfile, den wir uns dann zusammenarbeiten können, wenn wir möchten, wohingegen die Basic Activity zwei Layoutfiles hat, die modular aufgebaut sind. Ich schiebe das jetzt hier mal so ein bisschen nach rechts und schließe das. In dem main_activity_layout-File finden wir ein CoordinatorLayout, welches ein AppBarLayout implementiert. Das ist einfach nur hier oben dieser grüne Bereich. Ebenfalls finden wir einen Include-Befehl und einen fab-Button, also diese zwei bilden quasi hier das AppBarLayout, einen fab-Button bieten das Grundgerüst und zwischen den zwei Dingen wird ein xml include gemacht. Und dieses xml include sehen wir am besten mal im Text, also in der Codeansicht. Wir sehen, mit @layout greifen wir auf den Layout-Ordner zu und finden dort den main_activity_content-File, main_activity_content_layout.xml. Damit wird der Inhalt hier entsprechend implementiert. Wohingegen wenn wir uns das Layout als Testfiles angucken, da sehen wir, das einfach nur ConstraintLayout. Das steht nichts dergleichen drin, weil das ist halt nur ein File. Hat für uns in dem Moment hier entsprechend diesen Vorteil, dass wir unseren Inhalt in dem Content machen können und dort das Ganze zentralisieren. Und das grobe Gerüst, was außenrum steht, also diese App Bar und den fab-Button, das definieren wir in MainActivity-Layout. Und durch diesen include, der beide Dateien verbindet, das ermöglicht, einen zentralen Anlaufpunkt, nämlich main_activity_layout, zu haben und den Content separiert an diesem Main zu betrachten und da auch entsprechend zu arbeiten. Man muss, deswegen auch die Namensumgebung, einfach nur darauf achten, wo man arbeitet. Ich kann jetzt hier in dem main_activity_layout-File nicht hingehen und hier auf das TextView klicken. Das funktioniert nicht. Ich kriege ConstraintLayout angezeigt. Warum? Weil das das entsprechende Layout ist, was hier drinsteht, aber ich kann nichts bearbeiten. Also muss ich, um den Inhalt zu bearbeiten, zum Beispiel um das Textfeld zu verschieben, in mein main_activity_content gehen und dort das Textfeld dann zum Beispiel nach oben, nach unten oder sonst wohin schieben. Das funktioniert, aber ich kann das halt nicht über das MainActivity machen. In meiner Test Activity, die ich jetzt hier habe, da ist es kein Problem. Da habe ich nur ein File. Wenn ich mir da eine textview reinsetze, dann steht die hier und dann kann ich natürlich hier mit dieser dann direkt arbeiten und kann die mir halt ausrichten, so wie mir das jetzt an dieser Stelle gefällt. Und dann ist es, wenn ich diese bearbeiten möchte, klicke ich halt hier drauf. Gibt halt Vor- und Nachteile. Die Empty Activity ist halt leer, ist halt sehr einfach, kann sehr komplex gemacht werden, nach persönlichen Bedürfnissen. Die Basic Activity bietet mir halt hier an dieser Stelle schon den Rahmen mit dem AppBarlayout hier und dem fab-Username. Und wenn wir die App jetzt hier entsprechend ausführen, dann sehen wir auch nicht, dass der Inhalt in einem separierten File drin ist. So, ich lösche an dieser Stelle die TestActivity nochmal weg, die brauchen wir nicht mehr, und natürlich lösche ich mir auch hier entsprechend noch den Layout-File weg und vielleicht ist da auch noch, ich glaube, ich habe kein Save-Delete gemacht. Genau, wenn wir so was testmäßiges weglöschen, immer im Manifest, nochmal mit rein und dann passt das. Gut, führen wir das Ganze mal aus und nehmen den Emulator in den Vordergrund. So, an dieser Stelle sehen wir also keinen Unterschied, ob das jetzt hier in dem normalen Content-File ist oder in einem Layout File. Wir sehen, das ist eine schöne Activity, mit der wir arbeiten können. In diesem Video habe ich Ihnen gezeigt, was der Unterschied zwischen den beiden Layout-Files ist, wie das Ganze modular aufgebaut ist. MainActivity kapselt alles, definiert die AppBar und den fab-Button und inkludiert das Content-Layout, auf dem hier eigentlich die Arbeit entsprechend stattfindet. Eine Empty Activity hat nur einen Layout-File, eine Basic Activity hat immer zwei.

Inhalt