开发者

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜