Android 如何将视图设置为TabSpec的内容?
我想在Android 如何将视图设置为TabSpec的内容?,android,android-tabhost,Android,Android Tabhost,我想在TabSpec中添加一个视图(LinearLayout),但行中出现错误: spec.setContent(lay.getId()) 错误:无法创建选项卡内容,因为找不到id为1的视图 我不想使用任何xml。如何在添加到TabSpec ///编辑 实际上我发现了一个问题LinearLayout布局应该首先添加到tabcontentFrame,但它仍然不工作,我得到下一个RunTimeException,原因是Resources$NotFoundException带有消息无法启动活动组件信息
TabSpec
中添加一个视图(LinearLayout),但行中出现错误:
spec.setContent(lay.getId())代码>
错误:无法创建选项卡内容,因为找不到id为1的视图
我不想使用任何xml。如何在添加到TabSpec
///编辑
实际上我发现了一个问题LinearLayout布局
应该首先添加到tabcontentFrame
,但它仍然不工作,我得到下一个RunTimeException
,原因是Resources$NotFoundException
带有消息无法启动活动组件信息{com.example.konsolatrx/konsolatrx.TrxConsole}:android.content.res.Resources$NotFoundException:Resource ID#0x0
错误在tabHost.addTab(spec)行中代码>
///解决方案
好的,我找到答案了
问题在于:
TabHost TabHost=new TabHost(此)代码>
应该是:
TabHost-TabHost=new-TabHost(此为空)代码>
必须指定属性集,但我不知道为什么。也许有人能解释。NKN代码很好,但不是这个问题的解决方案,只是我想要的另一种方法。我使用了如下内容:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TabHost tabHost = new TabHost(this);
tabHost.setId(2);
TabWidget tabWidget = new TabWidget(this);
tabWidget.setId(android.R.id.tabs);
tabHost.addView(tabWidget, LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
FrameLayout tabcontentFrame = new FrameLayout(this);
tabcontentFrame.setId(android.R.id.tabcontent);
tabHost.addView(tabcontentFrame, LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
tabHost.setup();
LinearLayout lay = new LinearLayout(this);
lay.setId(1);
...
TabSpec spec = tabHost.newTabSpec(" ");
spec.setContent(lay.getId());
spec.setIndicator(" ");
tabHost.addTab(spec);
//mGame.addView(lay);
setContentView(tabHost);
}
我认为您正在使用一些xml从R.layout获取ID。不管怎样,我发现了问题,并且有了新的问题,如果你能帮忙的话。是的,我正在使用我自己的布局,但这不是问题,你甚至不能设置充气机,只需要获取文本。更新您的原始问题,并将编辑添加到您的进度中,以便有人能够提供帮助。我认为这是因为您需要设置TabHost,即在TabHost TabHost=new TabHost(此)之后;放置tabHost.setup();也许属性集正在这样做。
// Being th the TabHost
final TabSpec setContent = th.newTabSpec(tag).setIndicator(tabview).setContent(new TabContentFactory() {
public View createTabContent(String tag) {
final View ll_view = LayoutInflater.from(globvars.getContext()).inflate(R.layout.tabs_content, null);
final TextView view = (TextView) ll_view.findViewById(R.id.tabsContent);
// do all the stuff you need to do to your view
return ll_view;
}
});
th.addTab(setContent);