1

我想创建选项卡来显示我通过代码创建的某些视图。现在我可以将视图传递给 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 或选项卡式界面中使用我自己生成的视图?

4

1 回答 1

3

您需要使用采用TabHost.TabContentFactorysetContent()的重载方法版本。

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;
        }));
于 2012-06-20T17:04:41.777 回答