Tabhost中的Tabhost引发运行时错误(您的内容必须有一个TabHost,其id属性为' android.R.id.tabhost')

时间:2017-03-02 17:56:52

标签: android runtime android-tabhost

尝试在tabhost中嵌入tabhost时出现此错误

ava.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.tabdemo/com.example.tabdemo.Tab3Activity}: java.lang.RuntimeException: Your content must have a TabHost whose id attribute is 'android.R.id.tabhost'

tab3.java中的tabhost代码(我想要tabhost进入)

TabHost tabHost = getTabHost();


        // Tab for login
        TabHost.TabSpec Login = tabHost.newTabSpec("Login2");
        // setting Title and Icon for the Tab

        Login.setIndicator("", getApplicationContext().getResources().getDrawable(R.drawable.drawtab1));
        Intent LoginIntent = new Intent(this, tab1InnerActivity.class);
        LoginIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        Login.setContent(LoginIntent);

        tabHost.addTab(Login);

这是我目前的tab3.xml

<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<LinearLayout

    android:layout_width="match_parent"
    android:layout_height="match_parent"
     android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="16dp"
    android:background="#00547d"
  >



    <TextView
        android:id="@+id/Job_Number_Label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Job Number"
        android:textSize="20dp"  
        android:textColor="#ffffff" />


 </LinearLayout>
 </ScrollView>

我认为问题出在页面上。

1 个答案:

答案 0 :(得分:1)

只需更改您的布局文件,并使用此布局根据您的要求实施。

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background">
<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="5dp">

    <LinearLayout

        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="5dp">
        <ScrollView
            xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:tools="http://schemas.android.com/tools"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" />
        </ScrollView>
        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:padding="5dp" />




    </LinearLayout>

</LinearLayout>

错误原因是文本视图如果您想在选项卡中使用带有文本视图的图标,则为文本视图创建另一个自定义布局,并在活动中使用此布局以获取更多详细信息 Click here