J'ai 4 onglets, l'un d'entre eux est l'icône de notification. Par défaut, définissez toutes les icônes en utilisant les spécifications de l'onglet. Après un délai, je dois mettre à jour l'icône de l'onglet 4 avec un autre fichier de ressources. Comment mettre à jour tabhost? Y a-t-il des fonctions de mise à jour disponibles comme host.addTab (spec)?Comment mettre à jour une icône d'onglet spécifique dans tabhost android?
0
A
Répondre
1
Ici je suis en boucle tous les onglets et change la couleur et l'icône de l'onglet sélectionné. pour la boucle Je sélectionne tout d'abord l'onglet à désélectionner que seul l'onglet sélectionné est mis à jour les icônes et la couleur.
private void setTabColor(TabHost tabhost, int position) {
for (int i = 0; i < tabhost.getTabWidget().getChildCount(); i++) {
// unselected
tabhost.getTabWidget().getChildAt(i)
.setBackgroundResource(R.drawable.tab_unselected);
TextView tv = (TextView) tabHost.getTabWidget().getChildAt(i).findViewById(R.id.tvTabTitle);
tv.setTextColor(getResources().getColor(R.color.text_white));
}
if (position > 0) {
// selected
tabhost.getTabWidget().setCurrentTab(position);
tabhost.getTabWidget().getChildAt(tabhost.getCurrentTab())
.setBackgroundResource(R.drawable.tab_selected);
TextView tv = (TextView) tabHost.getTabWidget().getChildAt(tabhost.getCurrentTab()).findViewById(R.id.tvTabTitle);
tv.setTextColor(getResources().getColor(R.color.tab_color));
}
}
vous pouvez appeler méthode ci-dessus en utilisant
new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
@Override
public void run() {
//Do something here
setTabColor(myTabHost, myTabPosition);
}
}, 5000);
java.lang.NullPointerException: Tentative d'invoquer la méthode virtuelle 'vide android.view.View.setBackgroundResource (int)' sur un référence d'objet nul. Affiche cette erreur de journal. {hôte = (TabHost) findViewById (R.id.tabHost); hôte.setup(); host.getTabWidget(). SetStripEnabled (faux); hôte.getTabWidget(). SetDividerDrawable (R.drawable.border_tab_activity); hôte.setup (this.getLocalActivityManager());}, déjà défini tabhost. –
@SARATHV J'ai donné mon code que vous devez changer selon vos besoins. –
code fonctionne bien, merci. J'ai fait une erreur à la tabulation, c'est pourquoi j'ai obtenu l'exception nullpointer –