Search code examples
androidruntimeandroid-tabhost

Tabhost within Tabhost throwing runtime error (Your content must have a TabHost whose id attribute is 'android.R.id.tabhost')


When attempting to embed a tabhost in a tabhost I get this error

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'

My tabhost code from the tab3.java (were I want to tabhost to be in)

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

This is my current 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>

I have think issue is with the page.


Solution

  • Just Change Your Layout File and implement according to Your Requirement using this Layout.

    <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>
    

    Cause of Error is Text View If u want to use icon with Text View in Tab then create another custom layout for your Text View and use this Layout in Your Activity for more details Click here