选项卡异常消息

时间:2010-06-14 00:25:22

标签: android

06-14 00:21:30.398:ERROR / AndroidRuntime(332):引起:java.lang.RuntimeException:您的内容必须有一个TabHost,其id属性为'android.R.id.tabhost'

这意味着什么?我已经给了tabhost的id。我可以在R.java中看到id。

这是.xml:

<TabHost
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:padding="5dp">

        <TabWidget
            android:id="@+id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />

        <FrameLayout
            android:id="@+id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:padding="5dp" />
    </LinearLayout>
</TabHost>

3 个答案:

答案 0 :(得分:6)

如果您要使用TabActivity,则需要使用@android:id/tabhost作为android:id的{​​{1}}值。

答案 1 :(得分:2)

这里的问题是行“android:id =”@ + id / tabhost“。”@ +“字符意味着你指示android查看你的本地R文件。这在大多数情况下都很好,如果你有在那里定义了一个id,但是当你从操作系统中寻找一个内置的id时就没有了。扩展TabActivity的规则是你必须给TabHost一个“魔术”的android tabhost id。这意味着你需要像“android: id = @android:id / tabhost“(注意缺少”@ +“)。

答案 2 :(得分:1)

你应该删除声明

tabHost = (TabHost)findViewById(***********);

并添加

tabHost = getTabHost();