我想创建标签,显示我通过代码创建的某些视图。现在我可以将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或标签界面中使用我自己生成的视图吗?
答案 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;
}));