German Tabhostextras Tabhost.Tag abfragen

Loibl Johann

Member
Licensed User
Wenn ich mit TabHost.AddTab("Start","Start") ein Tab erzeuge, dann anklicke kann ich mit Tabhost.Tag das festgelegte Tag nicht auslesen es ist bei 3 Tabs immer nur der letzte Eintrag im Tag enthalten.

Ich habe mir das Beispiel schon vom tabhostextras angesehen ich werde nicht klug daraus.
Auf grund der Fehlermeldungen kann man auch keine Schlüsse ziehen wo ev Fehler sind
Wenn ich das so abfrage Msgbox(TabHostExtra.GetTagWidget.GetTabLabel(TabHost.CurrentTab).Tag,"TabWidget")
startet B4A den kompoiler gar nicht. Ich möchte Prüfen ob das Tabhost index 1 schon erzeugt wurde oder nicht
 

DonManfred

Expert
Licensed User
Longtime User
das festgelegte Tag nicht auslesen es ist bei 3 Tabs immer nur der letzte Eintrag im Tag enthalten
Falsch. Der im TabHOST gesetzte Tag kann ausgelesen werden.
Das ist aber nicht ein Tag für einen der Tabs. Das ist "einer für alle". Eben beim Tabhost. Also ein Tag für "die Gruppe"

Du lädtst jedoch ein Layout mit AddLayout.
Es steht Dir frei hier Tags zu definieren in einem der Objekte in dem Layout.
Du kannst dein eigenes Tag hier verwenden. im 1. Panel z.b.
 

Loibl Johann

Member
Licensed User
Wenn ich das jetzt richtig verstanden habe kann man nicht prüfen ob Tab Name= Start oder tab Name=Ende schon in dem Tabhost aktiv Sichtbar unsichtbar ist
sondern nur die ganze Gruppe.Dann müsste ich ja immer schon im voraus alle Tabs erzeugen und anzeigen genau das will ich nicht.Ich möchte die Tabs nur dann Aktivieren wenn sie gebraucht werden.Da muss ich aber zuerst prüfen ob schon vorhanden oder nicht.
 

pucki

Active Member
Licensed User
Entweder ich raff dein Problem nicht oder du siehst den Wald vor lauter Bäumen nicht.

Bitte beachte aber das INDEX die NR des Tabi (Reiter) ist. Hier werden die Reiter über Nummern angesprochen nicht über Strings (Text).

Mit den Tabhostextra gibt es folgenden Befehl
getTabVisibility(tabHost1 As TabHost, index As Int)
It now gets the visibility of a single tab, referenced by index.

B4X:
For i = 1 to anz_tabs_im_Tabhost

if getTabVisibility(tabHost1 As TabHost, index As Int) = true then
' tab wird angezeigt
else
' tab wird nicht angezeigt
end if
next i

Ich habe den Code zwar nicht getestet aber bisher haben alle solche Befehlslisten sehr gut funktioniert.
Hier nochmal der Link dazu. Lies bitte die ganze Seite dir durch. Da einigen Befehle verteilt sind. https://www.b4x.com/android/forum/threads/tabhostextras.11056/

Selbst bei VB unter Windows muss man die Tabs selbst vorher anlegen.

Gruß

Pucki
 

Loibl Johann

Member
Licensed User
Danke ich habe das jetzt so gelöst
Zuerst lade ich die Menüs dann habe ich eine Leere Ansicht
Wenn ich nun auf das Menü Tippe dann
B4X:
Sub Statistik_Click
   Activity.RemoveAllViews
   Activity.LoadLayout("Statistik")
   'TabHost.AddTab("Statistik","Statistik")
End Sub

Sub Suchen_Click
   Activity.RemoveAllViews
   Activity.LoadLayout("main")
   Activity.Title="Anzeigen"
   TabHost.AddTab("Start","Start")
   TabHost.AddTab("Ende","Ende")
End Sub

Jetzt funktioniert es aber trotzdem danke
 
Top