German Map Datein verwenden

normank

Member
Licensed User
Longtime User
Ich bin seit ein paar Tagen Besitzer von B4A und entsprechend ohne Erfahrung. :sign0085:
Ich möchte gern meine App mittels Map Datei von der SD-Card konfgurieren, d.h. in der Map-Datei z.B. soll stehen:

Button1.Visible= true
Button1.Text="btn1"
Button1.Event Name="btn"
Button1.Tag="1"
Lable1.Visible=true
Lable1.Text="Hallo xyz"
...
...
...
Label55.Visible=true
usw.(bei meinem Vorhaben etwa 200 Einträge)
Die so angegeben Eigenschaften sollen aus der Datei gelesen und den Views zugewiesen werden.


Ich hab das jetzt mit einer List Datei gemacht:

Sub ReadList
Dim List1 As List
Try
List1 = File.ReadList(File.DirRootExternal, "config.txt")
Catch
List1 = File.ReadList(File.DirAssets, "config.txt")
End Try
Button1.Text=List1.Get(0)
Button2.Text=List1.Get(1)
Lable1.Text=List1.Get(2)
...
Label55.Text=List.Get(98)
...
End Sub

So funktioniert es auch, bei 200 Einträgen allerdings etwas umständlich, ich suche also nach einer (For Next) Schleife o.ä. um das in wenigen Zeilen zu lösen.
Die List Datei ist auch nicht ideal, denn ohne Keys muss man den Überblick in der Datei behalten.

Kann mir da bitte jemand den Weg zu einer besseren Lösung weisen?
Danke im Vorraus!

Norman
 
Last edited:

Tron

Member
Licensed User
Longtime User
Views dynamisch erzeugen

Hallo Norman,
es geht vermutlich einfacher, wenn Du mit View Arrays arbeitest. Solche kann man in einer Schleife indizieren.
z.B.
B4X:
Sub Globals
Dim LV As LayoutValues
End Sub


Sub Activity_Create(FirstTime As Boolean)

Dim i As Int
Dim v As String 
Dim Button(4) As Button 
LV = Activity.LoadLayout ("Layout1")
        :
        :
For i = 0 To Button.length - 1
   Button(i).Initialize("btnEvent")
   v = i
   Button(i).Text=v
   Button(i).Tag = v
   Button(i).TextSize = 12.0
   Button(i).TextColor = Colors.Red
   Button(i).Typeface = Typeface.DEFAULT_BOLD  
   'Activity.AddView(Button(i), 5%x + (50*i), 10%y, 50*Dtc,50*Dtc)
   Activity.AddView(Button(i), 5%x + (100*i), 10%y, 100*LV.Scale,50*LV.Scale)

Next
End Sub

Sub btnEvent_Click
Dim Send As Button 
Send = Sender
   ToastMessageShow("Button " & Send.Tag & " pressed.", True)
End Sub

gruß Jens
 
Last edited:

normank

Member
Licensed User
Longtime User
:sign0089:
Danke Jens, ich glaube das wird mir helfen. Ich befasse mich mal etwas damit. Sollte ich noch Fragen haben melde ich mich !
norman
 

Watchkido1

Active Member
Licensed User
Longtime User
Gelöscht....
so hast du es ja schon.
 
Last edited:
Cookies are required to use this site. You must accept them to continue using the site. Learn more…