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

最佳答案

您需要使用采用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;
        }));

关于android - Android:使用TabHost和以编程方式创建的View,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11124376/

10-12 03:00