Cela semble être simple, mais je n'arrive pas à trouver un moyen de le faire. J'ai besoin d'un onglet pour avoir du texte de début, mais ce texte change après que l'utilisateur sélectionne un élément d'une liste. Je sais comment changer les arrière-plans des onglets et les couleurs viaComment changer le texte de l'onglet Android à la volée?
mTabHost.getChildAt(index).setBackgroundColor();
mais il n'y a pas d'option pour changer l'indicateur de l'onglet. J'ai essayé d'utiliser un EditText.
private EditText tabName;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.statistics);
comm = new Communicator();
tabName = new EditText(this);
tabName.setText("BeginningText");
mTabHost = getTabHost();
mTabHost.addTab(mTabHost
.newTabSpec("tab_1_stat")
.setIndicator(User)
.setContent(R.id.meStatsTab));
mTabHost.addTab(mTabHost
.newTabSpec("tab_2_stat")
.setIndicator(tabName.getText())
.setContent(R.id.themStatsTab));
mTabHost.addTab(mTabHost
.newTabSpec("tab_3_stat")
.setIndicator("Archive")
.setContent(R.id.archiveStatsTab));
mTabHost.setOnTabChangedListener(this);
getTabWidget().getChildAt(1).setOnClickListener(new onThemTabClicked());
mTabHost.setCurrentTab(0);
onTabChanged("tab_1_stat");
}
.....
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
tabName.setText("ChangedTabText");
Bundle extras = intent.getExtras();
themStats = extras.getStringArray("themStats");
mTabHost.setCurrentTab(1);
onTabChanged("tab_2_stat");
}
Cela ne fonctionne pas non plus, ainsi que quelques autres tentatives. Des idées? Merci d'avance!
Si vous utilisez le 'TabActivity' standard, vous pouvez utiliser' findViewById (android.R.id.title) 'à la place de' getChildAt (textIndex) 'comme dans [cette réponse] (http://stackoverflow.com/A/5577979/165674). –