A Tab Exception Message
06-14 00:21:30.398: ERROR/AndroidRuntime(332): Caused by: java.lang.RuntimeException: Your content must have a TabHost whose id attribute is 'android.R.id.tabhost'
what it means? I've already given the id for tabhost.And I can see the id in R.java.
Here is the .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"
开发者_如何学C 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>
If you are going to use TabActivity
, you need to use @android:id/tabhost
as the android:id
value of your TabHost
.
The problem here is the line "android:id="@+id/tabhost". The "@+" character means you are directing android to look in your local R file. This is fine in most cases if you have defined an id there, but not when you are looking for a built in id from the OS. The rule with extending TabActivity is you have to give the TabHost the "magic" android tabhost id. This means you need a line like "android:id=@android:id/tabhost" (note the lack of the "@+").
you should remove the statement
tabHost = (TabHost)findViewById(***********);
and add
tabHost = getTabHost();
精彩评论