06-14 00:21:30.398:ERROR / AndroidRuntime(332):引起:java.lang.RuntimeException:您的内容必须有一个TabHost,其id属性为'android.R.id.tabhost'
这意味着什么?我已经给了tabhost的id。我可以在R.java中看到id。<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>
答案 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();