2013-08-18 3 views
5

J'ai googlé ce mais je n'ai pas trouvé de solution s'il vous plaît aider. J'ai créé une vue TabBar ayant 3 onglets avec Tabhost et définir son titre avec TabSpec comme ceci:Modifier le titre de la barre d'onglets dans android

TabSpec tbhome = tabHost.newTabSpec("Home"); 
tbhome.setIndicator("Selected Topic"); 

J'ai 2 boutons dans mon autre onglet qui est à côté de l'onglet ci-dessus. Maintenant, ce que je veux, c'est que si je clique sur un bouton dans cet onglet, le titre de ce bouton doit être défini sur le titre de mon onglet d'accueil. C'est dans le code ci-dessus "Selected Topic" doit être réglé sur le titre de mon bouton.

Merci.

+0

s'il vous plaît mettez votre code afin que d'autres peuvent vous aider. –

+0

Je suis en train de définir le titre de l'onglet avec le code ci-dessus et je veux le changer à l'exécution tout en cliquant sur le bouton de l'une des autres activités de l'onglet. Je ne connais pas grand-chose sur les onglets juste en les mettant ainsi que leur titre etc. Donc je n'ai pas d'autre code à mettre en place !! – Vish

+0

Pourquoi les onglets tabhost et non barre d'action? –

Répondre

1

Créer une variable statique et la valeur comme "Sujet sélectionné" et dans l'événement de clic sur le bouton, faire de la propriété du widget de bouton la valeur de la variable statis. Espérons que c'est ce que vous vouliez dire.

+0

Aucune tabulation mois n'est créée avec une seule activité et chaque onglet a sa propre activité. Maintenant, dans l'activité de mon deuxième onglet, j'ai 2 boutons par exemple. Comment dois-je changer le nom de mon "PREMIER TAB" égal au nom du bouton cliqué. – Vish

+0

@Vish: D'abord, vous devez comprendre que votre problème n'a rien à voir avec l'activité ou la tabulation.Si vous voulez changer le nom de la première tabelle au nom du bouton lorsque vous cliquez dessus, essayez de créer une variable chaîne appelée "myVariable" et affectez le texte du bouton à cette variable. Dans l'événement click, lisez le texte du bouton et assurez-vous que le tbhome.setIndicator (myVariable); est réglé. – Mothy

+0

Mais comment le tabActivity (où pour la première fois les onglets sont créés) sera appelé à nouveau pour définir le nom de l'onglet !!! Je dois setIndicator en quelque sorte dans FIRSTTAB !! C'est le vrai problème.! – Vish

2

d'abord vous obtenez le bouton et le rendre finale puis cliquez sur Définir le texte

 final Button bX = (Button) findViewById(R.id.bXX); 
     bX.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
        bX.setText("Selected Topic "); 
      } 
     }); 
+0

Non, Tabbar est créé avec une seule activité et chaque onglet a sa propre activité. Maintenant, dans l'activité de mon deuxième onglet, j'ai 2 boutons par exemple. Comment devrais-je changer le nom de mon "PREMIER TAB" à quelque chose d'autre du deuxième onglet. – Vish

2

Le code pourrait être raffiné mais qui devraient faire:

public void onClick(View button) 
{ 
    RelativeLayout tbhome = tabHost.getTabWidget().getChildAt(0); 
    for (int j = 0; j < tbhome.getChildCount(); j++) 
    { 
     if (tbhome.getChildAt(j) instanceof TextView) 
     { 
      ((TextView) tbhome.getChildAt(j)).setText(button.getText()); 
      break; 
     } 
    } 
} 
1

Untested, mais je essayez d'envoyer le nouveau texte regroupé dans une intention d'une activité à l'autre.

Peut-être attraper avec Activity.onNewIntent()

Questions connexes