Android:使用TabHost以编程方式创建View

时间:2012-06-20 16:51:48

标签: android user-interface

我想创建标签,显示我通过代码创建的某些视图。现在我可以将View传递给TabHost,但只能通过id。

所以我尝试将一些随机ID,例如1001分配给我以编程方式创建的视图 -

TabHost th = getTabHost();
View v=getMyView(); v.setId(1001);
th.addTab(th.newTabSpec("tab1").setIndicator("Monthly").setContent(v.getId()));

当我使用没有查看号码1001的消息运行时,我收到强制关闭。

还有其他方法可以在TabHost或标签界面中使用我自己生成的视图吗?

1 个答案:

答案 0 :(得分:3)

您需要使用带有setContent()的重载TabHost.TabContentFactory方法的版本。

th.addTab(th.newTabSpec("tab1")
    .setIndicator("Monthly")
    .setContent(new TabHost.TabContentFactory() {
        @Override
        public View createTabContent(String tag) {
            if (tag.equals("tab1")) {
                return getMyView();
            }
            return null;
        }));