2010-03-23 7 views
0

J'essaie de créer et supprimer des onglets dynamiquement. Habituellement, une activité doit être définie pour chaque onglet créé dans TabSpec. Mais comment le faire quand les onglets sont créés dynamiquement? Ici, j'utilise une mise en page pour afficher le contenu de l'onglet. Si j'essaie d'utiliser la même activité en définissant le contenu de l'onglet, le texte se chevauche. Ici, je dois lire le texte de la vue EditText et le définir comme le contenu de l'onglet et ce contenu doit être affiché chaque fois que je navigue vers cet onglet.Comment créer une activité pour chaque onglet créé dynamiquement?

+0

« Habituellement, une activité doit être définie pour chaque onglet créé en TabSpec. » Non, généralement une vue doit être définie pour chaque onglet créé dans TabSpec. Il est * possible * d'utiliser les activités sous forme de contenu d'onglet, mais je ne le recommande pas, car il ajoute des frais généraux sans valeur. – CommonsWare

+0

Comment utiliser la même activité pour tous les onglets.J'ai essayé, mais les données se chevauchent.Même si nous voulons faire face à l'énorme contenu de l'onglet, il sera plus de tête ou gênant je pense. – Kantesh

+0

@Kantesh Utilisez Fragments maintenant: http://www.androidbegin.com/tutorial/implementing-fragment-tabs-in-android/ –

Répondre

5

Essayez cette

protected TabHost tabs; 

// ... 

/** 
* Init tabs. 
*/ 
private void initTabs() { 
tabs = (TabHost) findViewById(R.id.tabhost); 
tabs.setup(); 
tabs.setBackgroundResource(R.drawable.bg_midgray); 

TabHost.TabSpec spec; 

// Location info 
txtTabInfo = new TextView(this); 
txtTabInfo.setText("INFO"); 
txtTabInfo.setPadding(0, 0, 0, 0); 
txtTabInfo.setTextSize(14); 
txtTabInfo.setBackgroundResource(R.drawable.bg_tab_left_inactive_right_inactive); 
txtTabInfo.setTextColor(Color.DKGRAY); 
txtTabInfo.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.TOP); 
txtTabInfo.setHeight(39); 
spec = tabs.newTabSpec("tabInfo"); 
spec.setContent(R.id.tabInfo); 
spec.setIndicator(txtTabInfo); 
tabs.addTab(spec); 

// Maps 
txtTabMap = new TextView(this); 
txtTabMap.setText("MAP"); 
txtTabMap.setTextSize(14); 
txtTabMap.setPadding(0, 0, 0, 0); 
txtTabMap.setBackgroundResource(R.drawable.bg_tab_middle_inactive_right_active); 
txtTabMap.setTextColor(Color.DKGRAY); 
txtTabMap.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.TOP); 
txtTabMap.setHeight(39); 
spec = tabs.newTabSpec("tabMap"); 
spec.setContent(R.id.tabMap); 
spec.setIndicator(txtTabMap); 
tabs.addTab(spec); 

tabs.setCurrentTab(0); 

tabs.setOnTabChangedListener(this); 
} 

// ... 
Questions connexes