我想创建一些选项卡,以显示我通过代码创建的某些视图。现在,我可以将视图传递给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/