OnClickListener sur les Onglets ne fonctionne pas
Salutations,
Je suis en train d'essayer d'obtenir le Clic de l'événement en cliquant sur l'onglet actuellement sélectionné de mon TabActivity. Le onTabChangedHandler n'est appelée que lorsque l'onglet est modifiée, pas si actuellement l'Onglet actif est cliqué. Le debugger me dit que j'ai le onClickListener Enregistré pour le TabWidget dans mon TabHost.
Suis-je de vous inscrire pour le mal Vue?
Aussi, je suis incapable de créer un Menu Contextuel des Onglets, que pour son contenu, ce problème est-il lié?
public class TestDroidViewTab extends TabActivity
implements TabContentFactory
, OnTabChangeListener, OnClickListener {
private static final String LOG_KEY = "TEST";
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final TabHost tabHost = getTabHost();
TabHost.TabSpec ts = tabHost.newTabSpec("ID_1");
ts.setIndicator("1");
ts.setContent(this);
tabHost.addTab(ts);
ts = tabHost.newTabSpec("ID_2");
ts.setIndicator("2");
ts.setContent(this);
tabHost.addTab(ts);
ts = tabHost.newTabSpec("ID_3");
ts.setIndicator("3");
ts.setContent(this);
tabHost.addTab(ts);
tabHost.setOnClickListener(this);
tabHost.setOnTabChangedListener(this);
}
public void onClick(View v) {
Log.d(LOG_KEY, "OnClick");
}
public void onTabChanged(String tabId) {
Log.d(LOG_KEY, "OnTabChanged");
}
Vous devez vous connecter pour publier un commentaire.
Si vous voulez voir un onglet est sélectionné, vous devez ajouter votre auditeur à l'onglet lui-même, pas la TabHost.
La hiérarchie de vues dans un onglet de mise en œuvre est:
Les onglets sont ajoutées lors de l'exécution en appelant le:
tabHost.addTab(tabHost.newTabSpec(""));
Vous pouvez obtenir une poignée pour les différents onglets en appelant le:
getTabWidget().getChildAt(4);
En essence, vous ajoutez votre
OnClickListener
à un enfant de la TabWidget. Vous pouvez maintenant ramasser les clics sur votre onglet. Cependant, cela va remplacer le comportement par défaut qui change le contenu lorsqu'un onglet est sélectionné. Donc, pour obtenir votre contenu à changer, vosOnClickListener
aurez besoin de le faire pour vous.Voici un exemple complet, qui vous permet d'intercepter l'événement de clic, et changer le contenu de l'onglet ci-dessous:
utilisation
setOnTabChangedListener
au lieu deOnClickListener
😉Votre clause est faux, usage:
...
...
Essayer cette