German Neu mit Android und paar Fragen

Paulsche

Well-Known Member
Licensed User
Longtime User
Hallo, bin auch auf Android umgestiegen und möchte nun mein Spritverbrauch-Programm von PPC auf Android umschreiben, tu mich aber momentan schwer.

1. Activities
ich habe zigmal die Doku gelesen und kappiers trotzdem nicht ganz.
Ich möchte halt mein vorigen 11 Forms die ich hatte umsetzten,
muss ich nun 11 Activities erstellen oder 1 Activitie und kann darüber mehrere Layouts die ich im Designer erstellt habe nach belieben laden ?
z.B.

Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("01startseite")
SetPosStartseite
End Sub

Sub BTN01Tabelle_Click
Activity.LoadLayout("03Tabelle")
End Sub


2. Muss man nun grundsätzlich die im Designer erstellen Views (Controls)
mit DIM declarieren ? (hab ich nirgends in einer Doku gefunden)

3. Wie lade und Speichere ich meine Tankdaten am besten, mit DBUTILS (SQL)
oder mit load- saveCSV mit Textdateien ? In B4PPC hatte ich Textdateien, mit Tabellen,
bei B4A gibt es irgendwie keine Tabellen mehr, könnte ich das dann mit Listview machen ?


Das wären die wichtigesten Fragen vorerst mal für mich damit ich weitermachen kann, danke schon mal.
 
Last edited:

klaus

Expert
Licensed User
Longtime User
Hallo Paulsche,

1) Es gibt wie immer mehrere Möglichkeiten:
- mit 11 Activities zu arbeiten.
- mit einer Activity und 11 Layouts
- mit 11 Panels in der gleichen Activity.
Verschiedene Beispiele gibt es hier: Different examples with 2 layouts
Die Beispiele kann man auf mehr als zwei erweitern.

Ich würde es mit Panels machen.
Die Panels würde Ich im Code erstellen.
Eine Layoutdatei für jedes Panel.
Mit den Panels setzt man das aktuelle als unsichtbar und das neue sichtbar.

Ein neues Layout in die Activity zu laden hat als Bedingung dass man alle aktuellen Views löschen muss ansonsten würden sie in der Activity bleiben und die neuen kämen dazu.

Jetzt wenn Du aber deinen Code in verschiedenen Modulen haben willst könnten 11 Activites die bessere Lösung sein.
Nachteil, es kann immer nur eine Activity aktiv sein. Wenn Du eine Neue laden willst muss die aktuelle gelöscht werden, und wenn Du diese nachher wieder brauchst wird sie neu geladen.

2) Nein, die müssen nur mit Dim deklariert werden wenn du im Programm direkt mit deren Namen auf sie zugreifen willst. Wenn Du zum Beispiel im Code folgende Zeile schreibst: EditText1.Text = "Irgen etwas" dann muss Dim EditText1 As EditText deklariert werden. Wenn Du nie EditText1 im Programm verwendest brauchst Du es auch nicht zu deklarieren.
Im Designer gibt as das Utility 'Tools/Generate Members' mit dem kannst Du die Deklarationen und Event Routinen automatisch erstellen lassen.

3) ListView NEIN, ScrollView JA. Es gibt einige Beispiele darüber.
Ich würde zuerst mit CSV Dateien weiter machen da Du sie ja schon hast.
Auf SQL umzusteigen wäre auch gut, Ich glaube dass das Laden der Daten schneller geht. Dann gibt es noch die ganzen Filterfunktionen. Ist aber mehr Aufwand die ganzen Daten zu übertragen. Falls Du aber in der B4PPC Table schon Filterfunktionen verwendest hast und diese brauchst musst Du auf SQL umsteigen.
Beispiel Tabelle mit CSV
Beispiel Tabelle mit SQL
Anderes Beispiel Tabelle mit SQL

Beste Grüsse.
 

Paulsche

Well-Known Member
Licensed User
Longtime User
Hi Klaus, danke für die schnelle Antwort,

also Filter in der Tabelle benötige ich schon weiterhin,
das heißt also dass ich das nur mit SQL bzw. DBUtils machen kann ?


OK, Scrollview statt Listview, ist doch beide für Listenansicht, was hat Scrollview für Vorteile ?


Das mit den Activities, Layouts, Panels hab ich mir reingezogen und einigermaßen verstanden,
bei Tests hab ich bemerkt, dass sas arbeiten mit mehreren Activities merklich langsamer beim switchen ist.
Werd also das mit 1 Activitie, 11 Panels mit je eigenem Layout nehmen.
 
Last edited:

klaus

Expert
Licensed User
Longtime User
also Filter in der Tabelle benötige ich schon weiterhin,
das heißt also dass ich das nur mit SQL bzw. DBUtils machen kann ?
Ja, Ich habe DBUtils noch nicht näher angeschaut, bin nicht sicher ob Filterfunktionen drin sind. Mit SQL kein Problem.

. . .was hat Scrollview für Vorteile ?
ListView ist relativ begrenzt, ein Icon und zwei Labels, hat aber eine FastScroll Funktion.
Mit ScollView kannst Du (fast) machen was Du willst, viel viel umfangreicher, hat aber keine FastScroll Funktion. Für Tabellen ist ListView nicht nutzbar. Schaue mal hier rein.

Werd also das mit 1 Activitie, 11 Panels mit je eigenem Layout nehmen.
Ich würde es Auch so machen.

Beste Grüsse.
 

Paulsche

Well-Known Member
Licensed User
Longtime User
Danke Klaus,

hast mit sehr geholfen, hatte wirklich Entscheidungsschwierigkeiten.

Momentan versuche ich eine SQL-DB einzubauen und suche aus anderen Programmen das nötige raus. Muss nun erst mal eine Eingabemaske für meine Daten erstellen, damit ich das speichern in die SQL-DB testen kann.

Es werden bestimmt noch mehr Fragen kommen, ich melde mich dann wieder,
verusche aber natürlich zuerst selber dden richten Weg herauszufinden.
 

klaus

Expert
Licensed User
Longtime User
Ich bin gerade dabei ein SQL Beispielprogramm zu schreiben, es ist noch nicht fertig deshalb ist es noch nicht veröffentlicht.
Poste es aber hier, vielleicht kann es Dir helfen.
- Auf der blauen Linie kann man die ScrollView waagrecht verschieben.
- Auf einen Eintrag klicken zum editieren oder löschen.
- LongClick auf Filter öffnet das Filter Fenster für die Filterkriterien.
- Wenn ein Eintrag gewählt ist kann man multiselect aktivieren mit einem LongClick auf einen anderen Eintrag.
- Ein Click auf einen Spaltentitel sortiert diese Spalte aufwärts oder abwärts.

Die Editier- und Filterfenster werden automatisch im Code erstellt.
Die Spaltenanzahl und deren Namen sind im Code wählbar.

Beste Grüsse.
 

Attachments

  • SQLScrollViewMultiselectHScroll.zip
    13.9 KB · Views: 308
  • SQLScrollViewMultiselectHScroll.jpg
    SQLScrollViewMultiselectHScroll.jpg
    54.6 KB · Views: 314

Paulsche

Well-Known Member
Licensed User
Longtime User
Hi Klaus,

vielen Dank, das sieht ja richtig gut aus, da kann ich mit Sicherheit
viel rausholen.
 
Top