German Probleme mit einem Label1, App starten nicht.

BenKhederSoftware

Member
Licensed User
Guten Tag! :)
Ich verstehe das Verhalten der Entwicklungsumgebung noch nicht ganz.
Wenn ich ein Label von der Layout ausgewählt habe.
Und dann die App starten möchte, erscheint dieser Fehler:
„View 'Label1' wurde durch den Designer hinzugefügt. Eine Initialisierung ist unnötig. (warning #20)“

Wenn ich aber die Variable die den Fehler verursacht auskommentiere, kann man das Projekt nicht mehr Compilern.
Auch wenn ich Label1.Initialize("Label1") auskommentiere, bekomme ich
ein Fehler angezeigt.
Wenn ich dieses dann auch noch auskommentiere, geht gar nichts mehr….
Ich hoffe ich könnte das Problem gut beschreiben.
Freue mich auf eure Hilfe!
MFG
Ben Kheder Software

BugMitCodeB4a.jpg
 

BenKhederSoftware

Member
Licensed User
Vieleicht, hilft die Fehlermeldung weiter!

Error occurred on line: 55 (Main)
java.lang.RuntimeException: Object should first be initialized (Label).
at anywheresoftware.b4a.AbsObjectWrapper.getObject(AbsObjectWrapper.java:67)
at anywheresoftware.b4a.objects.TextViewWrapper.setText(TextViewWrapper.java:39)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:732)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:348)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:255)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:144)
at anywheresoftware.b4a.objects.Timer$TickTack.run(Timer.java:105)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:237)
at android.app.ActivityThread.main(ActivityThread.java:7948)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1075)


Edit1:
Ich habe die Warnung ausgeschalten. :cool:
Jetzt läuft die APP wieder.

Lösung:
#IgnoreWarnings: 20

Aber es gibt bestimmt eine, bessere Lösung...
 
Last edited:
D

Deleted member 103

Guest
Guten Tag! :)
Ich verstehe das Verhalten der Entwicklungsumgebung noch nicht ganz.
Wenn ich ein Label von der Layout ausgewählt habe.
Und dann die App starten möchte, erscheint dieser Fehler:
„View 'Label1' wurde durch den Designer hinzugefügt. Eine Initialisierung ist unnötig. (warning #20)“

Wenn ich aber die Variable die den Fehler verursacht auskommentiere, kann man das Projekt nicht mehr Compilern.
Auch wenn ich Label1.Initialize("Label1") auskommentiere, bekomme ich
ein Fehler angezeigt.
Wenn ich dieses dann auch noch auskommentiere, geht gar nichts mehr….
Ich hoffe ich könnte das Problem gut beschreiben.
Freue mich auf eure Hilfe!
MFG
Ben Kheder Software

View attachment 115129
Alle Views die im disigner hinzugefügt wurden, müssen nicht nochmal initialisiert werden, aber sie müssen unter "Sub Global" definiert werden um es verwenden zu können.
 

pucki

Active Member
Licensed User
Longtime User
Die Meldung bedeutet das die Designangabe des Objekt (hier Label) automatisch übergeben werden. Also Position/Farbe etc. und dann schon initialisiert werden.

Eigentlich brauchst du den Designer nicht, aber dann tippst du dir die Finger wund. ;) Es gibt Objekte die nur im Code erstellt und designt werden. z.b. ein Menü, bzw. Objekte die Erle nicht vorgesehen hat.

Klick im Designer das Label RECHTS an, dann entscheide welche Sub's du brauchst. Mir reicht meist die CLICK_Eigenschaft. Wenn du das gemacht hast, wird auch das Objekt in Global angelegt.

Wichtiger Tipp : Das ersten was du machen solltest wenn du ein neues Objekt anlegst, ist seinen Name in was Verständliches zu ändern wenn du den mit den Objekt arbeiten willst. Ein Label kann ruhig Label_1 heißen, da du damit nicht arbeiten willst und selten Eigenschaften auslöst. Womit wir bei deinen Problem sind. Keine Eigenschaften = selbst in der Global anmelden. Eigenschaften anlegen = wird angemeldet ;)

Wenn du aber Eigenschaften eines z.b. Textfeld festlegst, solltest es ein vernünftigen nachvollziehbaren Namen haben. Ich mache das immer so hp_e_vorname . HP = Hauptframe , das e steht für Eingabefeld und vorname ist halt das was da in das Feld rein soll. So behalte ich beim Programmieren auch noch bei 100 Objekten den Überblick und ich hab unter VB (windows) manchmal mehr 100 im Prg.

Richtige Reihenfolge im Designer :

1. Objekt auf die Form legen.
2. Objekt Namen geben
3. Objekt designen (Farbe , Pos. Text etc.)
4. Objekt Eigenschaften geben (Rechte Maus auf Objekt)
5. Design speichern ;)


Gruß

Pucki
 
Top