Grüße,
Ich versuche, das Click - Ereignis zu erhalten, wenn ich auf die aktuell ausgewählte Registerkarte meiner TabActivity klicke. Der onTabChangedHandler wird nur aufgerufen, wenn die Registerkarte geändert wird, nicht, wenn auf die gerade aktive Registerkarte geklickt wird. Der Debugger teilt mir mit, dass ich den OnClickListener für das TabWidget in meinem TabHost registriert habe.
Melde ich mich für die falsche Ansicht an?
Ich kann auch kein Kontextmenü für die Tabs erstellen, nur für den Inhalt, hängt dieses Problem zusammen?
%Vor%Wenn Sie sehen möchten, dass ein bestimmter Tab angeklickt wurde, müssen Sie Ihren Listener zum Tab selbst hinzufügen, nicht zum TabHost.
Die Hierarchie der Ansichten in einer Tab-Implementierung ist:
Die Registerkarten werden zur Laufzeit hinzugefügt, indem: tabHost.addTab(tabHost.newTabSpec(""));
Sie können dann eine Handle für die einzelnen Registerkarten erhalten, indem Sie Folgendes aufrufen: getTabWidget().getChildAt(4);
Im Wesentlichen fügen Sie Ihr OnClickListener
zu einem Kind des TabWidget hinzu. Sie können jetzt die Klicks auf Ihrem individuellen Tab abholen. Dies überschreibt jedoch das Standardverhalten, das den Inhalt ändert, wenn auf eine Registerkarte geklickt wird. Um deine Inhalte zu ändern, muss dein OnClickListener
das für dich tun.
Hier ist ein vollständiges Beispiel, mit dem Sie das Klickereignis abfangen und den Inhalt unter dem Tab ändern können:
%Vor%Tags und Links android android-tabhost onclick