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);