German Einstellungen fürs Testen

peternmb

Well-Known Member
Licensed User
Longtime User
Hallo, ich teste meine App mit einem realen Gerät und der B4A-Bridge, das funktioniert auch wunderbar.

Das Einzige was dabei stört und Zeit kostet ist, dass immer beim Übertragen bzw. Installieren der App die auf der Speicherkarte unter File.DirDefaultExternal vorhandenen CSV-Dateien gelöscht werden. Die auf dem intenen Speicher abgelegte ini-Datei bleibt (zum Glück) erhalten. Kann ich das irgendwo einstellen?
 

peternmb

Well-Known Member
Licensed User
Longtime User
Hallo, ich habe die ZIP angehängt.

Wenn ich mit "neue Liste" die vorgegebene Daten übernehme, wird eine CSV-Datei erstellt. Beim erneuten erstellen wird geprüft, ob diese Datei vorhanden ist, und es kommt ein entsprechender Hinweis. Solange ich das Teste funktioniert es. Wenn ich das Programm über die B4A-Bridge neu installiere dann sind die CSV-Dateien weg.

Vielleicht kannst du mir auchzu noch einen Hinweis geben, wie ich auf dem Listenhintergrund etwas schreiben kann (Zeile 475)

PS.: ich weiß, dass man im Code allerlei zusammenfassen oder kürzen könnte. Das habe ich extra nicht gmacht, damit ich gerade am Anfang etwas besser durchblicke. Auch sind einige Dinge technisch nicht gut gelöst (z.B. der Passwortschutz) aber es funktioniert erstmal ;-)
 

Skywalker

Member
Licensed User
Longtime User
Bin mir jetzt nicht zu 100% sicher, aber ich glaube bei einem Update wird der Inhalt von "File.DirDefaultExternal" gelöscht.
Somit wäre auch deine CSV-Datei weg.

Um das zu umgehen, erstelle dir doch ein neues eigenes Verzeichnis auf der SD-Karte, oder benutze für die Liste auch "File.DirInternal".
Letzteres wird bei einem Update wohl nur aktualisiert.

Hoffe ich habe jetzt nichts falsches von mir gegeben.
 

klaus

Expert
Licensed User
Longtime User
Ich habe ein einfaches Programm auf meinem Nexus One getestet.
Das Gerät ist mit USB mit dem PC verbunden.
Mit File.DirInternal funktioniert es bei mir, das heisst die Datei wird nicht gelöscht wenn Ich das Programm neu kompiliere.
Ich habe keine Verbindung mit B4A-Bridge.
Ich schlage Dir folgendes vor:
- Setze einen Breakpoint in die erste Zeile in der LoadVar Routine um zu sehen ob die Datei weg ist.
- Wenn JA versuche es mit File.DirDefaultExternal und wenn das nicht geht versuche es mit File.DirRootExternal.
Wenn Du die letzte Lösung nehmen musst kannst Du auch einen Unterordner benutzen, zum Beispiel File.DirRootExternal & "/ListFuehrer".

Beste Grüsse.
 

peternmb

Well-Known Member
Licensed User
Longtime User
Muss ich prüfen ob "Mein" Verzeichnis vorhanden ist, und es falls nicht selber anlegen, oder wird das automatisch gemacht?

Alles klar: mit File.MakeDir(File.DirRootExternal,"Listenfuehrer") kann ich das Verzeichnis erstellen falls es noch nicht vorhanden ist; und es funktioniert auch wie gewünscht, die Daten werden beim Update nicht mehr gelöscht.

Vielleicht kannst du mir auch noch einen Hinweis geben, wie ich auf dem Listenhintergrund etwas schreiben kann (Zeile 475)
 
Last edited:

klaus

Expert
Licensed User
Longtime User
Ich nehme an dass Du auf das Bild (Liste.jpg) zeichnen willst.
Das heisst dass die Zeichenfläche das interne Panel der ScrollView ist.
In Globals den Canvas definieren:
B4X:
Dim cvsBG_Bild As Canvas
In Activity_Create den Canvas Initialisieren :
B4X:
BG_Bild.Panel.LoadLayout("scrollviewpanel")
cvsBG_Bild.Initialize(BG_Bild.Panel)
Und dann Zeile 475 :
B4X:
cvsBG_Bild.DrawText("TestZeile ", 10, 10, Typeface.DEFAULT, 20, Colors.Red, "LEFT")
Beste Grüsse.
 

peternmb

Well-Known Member
Licensed User
Longtime User
ich erhalte beim Programmstart (nicht beim kompilieren) eine Fehlermeldung, mit der ich nichts anfangen kann:
java.lang.IllegalArgumentException: width and high must be > 0
 

klaus

Expert
Licensed User
Longtime User
Ich hatte es nicht getestet.
Da die Layoutdatei scrollviewpanel ein Panel, BG_Panel, enthält muss man dieses nehmen. Das hatte Ich verpasst, bitte um Entschuldigung.
Füge die Zeile Dim BG_Panel As Panel ein:
B4X:
Dim cvsBG_Bild As Canvas
Dim BG_Panel As Panel
Und ändere diese Zeile:
B4X:
    cvsBG_Bild.Initialize(BG_Panel)
Dann funktionierts.

Beste Grüsse.
 

peternmb

Well-Known Member
Licensed User
Longtime User
Super, so funktioniert es - hatte ich (fast) so probiert, aber nicht hinbekommen.

Nochmals herzlichen Dank für die schnelle Hilfe.
 

peternmb

Well-Known Member
Licensed User
Longtime User
Kann es sein, dass die Daten nicht sofort angezeigt werden, sondern erst nachdem eine andere Aktion durchgeführt wurde?
Kann ich das irgendwie ändern?
 
Top