Salutations,
J'essaie d'obtenir l'événement Click - en cliquant sur l'onglet Actuellement sélectionné de ma tabactivité. L'OntabchangedHandler est uniquement appelé à chaque fois que l'onglet est modifié, non si l'onglet Actif actuellement actif est cliqué. Le débogueur me dit que j'ai l'ONCLICKLISTENER enregistré pour Tabwidget dans mon Tabhost. P>
suis-je inscription à la mauvaise vue? P>
En outre, je ne suis pas en mesure de créer un menu contextuel pour les onglets, ce n'est que pour son contenu? P>
4 Réponses :
Utiliser setontabChangeDlistener code> au lieu de
onclicklistener code>;)
Vous n'êtes pas censé appeler une super méthode pour obtenir l'onglet "Clickable" comme avant? Lorsque j'ajoute ce code, il clique, la souris brille, mais elle ne montre pas la liste de la liste de cet onglet.
Désolé, mon erreur, travaille comme une bombe, j'avais du code supplémentaire qui prenait plus loin.
Je pense qu'il y a une erreur dans le code ... ici il devrait être gettabhost au lieu de tabhost .....
Bonjour Chirag en fait Tabhost vient de Gettabhost (); Voir l'article original, Tabhost Final Tabhost = GetTabhost ();
Si vous voulez voir qu'un onglet particulier est cliqué, vous devez ajouter votre auditeur à l'onglet lui-même, pas le Tabhost.
La hiérarchie des vues dans une implémentation d'onglet est la suivante: p>
Les onglets sont ajoutés à l'exécution en appelant: Vous pouvez ensuite obtenir une poignée Les onglets individuels en appelant: Essentience, vous ajoutez votre Voici un exemple complet, ce qui vous permet d'intercepter l'événement de clic et de modifier le contenu sous l'onglet: P> tabhost.addtab (tabhost.newtabspec ("")); > p>
gettabwidget (). getTabildget (4); code> p>
onclicklistener code> à un enfant du tabwidget . Vous pouvez maintenant récupérer les clics sur votre onglet individuel. Cependant, cela remplacera le comportement par défaut qui modifie le contenu lorsqu'un onglet est cliqué sur un onglet. Donc, pour que votre contenu change, votre
onclicklistener code> devra faire cela pour vous. P>
final String myTabTag = "My Tab";
final int myTabIndex = 3;
getTabHost().addTab( getTabHost().newTabSpec(myTabTag) );
getTabWidget().getChildAt(myTabIndex).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (getTabHost().getCurrentTabTag().equals(myTabTag)) {
getTabHost().setCurrentTab(myTabIndex );
}
}
});
Lorsque j'essaie ceci, cela change l'onglet mais pas le contenu sous l'onglet ... Toute suggestion?
Votre clause est fausse, utilisez:
... p> ... p> p>
dans mon code, cela montre des erreurs et demandez-moi de créer de nouvelles méthodes dans ces noms comme gettabwidget (), gettabhost (), etc. en attente de votre réponse. P>
Essayez ceci p>
xxx pré> blockQuote>