库项目中的TabActivity,找不到android.R.id.tabhost错误

时间:2011-02-07 12:47:43

标签: android android-layout android-tabhost android-library

我正在尝试为其他开发人员创建模板/ BaseActivity类,作为框架的一部分。

我使用TabActivity扩展了我的类,我的xml看起来像这样/

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout android:orientation="vertical"
        android:layout_width="fill_parent" android:layout_height="fill_parent">
        <View android:layout_width="fill_parent" android:layout_height="0dip"
            android:background="#000" />
        <TabWidget android:id="@android:id/tabs"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:layout_marginLeft="0dip" android:layout_marginRight="0dip" />
        <View android:layout_width="fill_parent" android:layout_height="2dip"
            android:background="#696969" />
        <View android:layout_width="fill_parent" android:layout_height="1dip"
            android:background="#fff" />
        <FrameLayout android:id="@android:id/tabcontent"
            android:layout_width="fill_parent" android:layout_height="fill_parent" />
    </LinearLayout>
</TabHost>

当我通过在其他项目中扩展来使用此活动时,我收到一条错误说明,它无法获取android.R.id.tabhost,这是必要的。

即使我在两种情况下调用getTabHost()或findViewById(),也会发生这种情况。

请注意:我在没有扩展TabActivity的情况下尝试了这一点,以便在选项卡中使用视图。它工作正常。但我想将活动用作我的标签内容。

我认为当我们将它作为一个图书馆项目并包含它时,这就是问题。

如果您需要更多解释或者您知道一些解决方法,请告诉我们,请建议。

1 个答案:

答案 0 :(得分:2)

我解决了这个问题。 提供了一个库类,要求用户将当前活动实例传递给我的templateLibrary。

它调用将Conetnt设置为包含android选项卡的布局文件之一。 然后获取标签主持人。

如果有人想了解更多细节,请告诉我。 如果您正在开发一个为用户提供布局的框架。