我只想根据可用的数字类别动态创建标签。在每个选项卡中,我需要在每个选项卡内动态创建多个可扩展列表视图。 (例如:说我有四个类别,如教育,体育,科学,航空航天)然后我需要在运行时创建四个选项卡,它将根据我得到的数字类别(一个或二十个或更多)进行更改。
在每个标签页面中,我需要创建多个可展开的列表视图(动态)。
答案 0 :(得分:1)
你需要考虑像这样
TAB2 = TAB3 = TAB1 = Fragement ----在这里你可以做扩展列表视图,它将在布局本身中定义,但是你需要更新可扩展列表视图。
对于动态Tabview,您可以这样做 您应该通过指定
来指定TabSpec视图的ID,或 用于创建View内容的TabHost.TabContentFactory 你的代码同时做到了!
将您的代码更改为以下之一:
for (int i=1; i<=n; i++){
final String tabName = "tab" + Integer.toString(i);
final TabSpec ourSpec = th.newTabSpec(tabName);
ourSpec.setContent(new TabHost.TabContentFactory() {
public View createTabContent(String tag) {
TextView text = new TextView(NewTicket.this);
String tabText = tabName;
text.setText("You've created a new tab " + tabText);
return (text);
}
});
ourSpec.setIndicator(tabName);
tabhost.addTab(ourSpec);
}
or
for (int i=1; i<=n; i++){
final String tabName = "tab" + Integer.toString(i);
final TabSpec ourSpec = th.newTabSpec(tabName);
ourSpec.setContent(R.id.llItemList);
ourSpec.setIndicator(tabName);
tabhost.addTab(ourSpec);
}
要保留ListView的相同实例(如评论中所述),请执行以下操作:
注册TabHost.OnTabChangeListener 当选项卡更改时,您应首先在ListView的当前父级上调用removeView(),然后将View()添加到新父级。