Android Tutorial Static Code Module

klaus

Expert
Licensed User
Longtime User
Basic4android v1.2 enthält eine neue Art von Modulen, statische Code-Module.
Das Englische Originaltutorial.

Zum hinzufügen eines neuen Static Code-Moduls muß man im Menü Project - Add New Module - Code Module wählen.

Im Gegensatz zu Activities und Services, haben Code-Module keinerlei Zusammenhang mit Android Prozess Lebenszyklen. Sie sind nur Code-Behälter.
Alle Subs in diesen Modulen sind öffentlich (public) und können von anderen Modulen aufgerufen werden.

Benutzung von Code Modulen umfaßt:
- Vermeiden von doppeltem Code in mehreren Modulen.

- Gemeinsame Nutzung von Code zwischen Projekten. Zum Beispiel kann man ein Code-Modul erstellen, das eine XML-Datei analysiert. Später kann man problemlos das Modul in anderen Anwendungen wiederverwenden.
- Trennung von Anwendungslogik. Jedes Modul für eine bestimmte Aufgabe eingesetzt werden. Dadurch wird Ihr Programm übersichtlicher und einfacher zu pflegen.

Da ein Code-Module nicht an eine Activity weder auf ein Service gebunden ist, benutzt es den 'calling component context' wenn nötig.
Zum Beispiel der Aufruf einer Code-Modul Subroutine, die eine Msgbox aus einer Activity anzeigen soll, wird funktionieren. Allerdings, wenn man sie von einem Service aufruft, wird es scheitern da Services keine Dialogs anzeigen können.

Code-Module können keine Events abfangen.
Man kann aber in einem Code-Modul, zum Beispiel einen Button initialisieren:

B4X:
Sub ButtonsCreator(Text As String) As Button
  Dim b As Button
  b.Initialize("Button")
  b.Text = Text
  Return b
End Sub
Vom Activity Module kann man folgendes aufrufen:
B4X:
Activity.AddView(CodeModule.ButtonsCreator("press here"), 10dip, 10dip, 200dip, 200dip)
Nun um das Click-Event abfangen zu können muß man eine Subroutine namens Button_Click erstellen.
Diese Subroutine muß sich im Activity Modul befinden, da Code-Module keine Events abfangen können.
CallSub verwendet intern den Event-Mechanismus kann deshalb nicht verwendet werden um Code-Modul Subroutinen aufzurufen (direkt können sie aber aufgerufen werden).
 
Top