如何在Android中添加动态标签和动态可扩展列表视图?

时间:2015-07-30 09:30:03

标签: android tabs pagerslidingtabstrip

我只想根据可用的数字类别动态创建标签。在每个选项卡中,我需要在每个选项卡内动态创建多个可扩展列表视图。 (例如:说我有四个类别,如教育,体育,科学,航空航天)然后我需要在运行时创建四个选项卡,它将根据我得到的数字类别(一个或二十个或更多)进行更改。

在每个标签页面中,我需要创建多个可展开的列表视图(动态)。

经过大量研究后,我发现了一些相关链接(hereherehere等等。我更愿意采用我不了解的适当而有效的方法。

1 个答案:

答案 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()添加到新父级。