views:

68

answers:

1

I am getting the following error when I try to launch an activity containing a tabhost.

08-25 16:51:42.551: ERROR/AndroidRuntime(27863): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.paratransit/com.paratransit.jobDialog}: java.lang.RuntimeException: Could not create tab content because could not find view with id 2131165185

This is my code. Can anyone help?

Java

public Class jobDialog extends TabActivity {

    TabHost tabs;
 int jobCurrentTab = -1;

 @Override
 public void onCreate(Bundle savedInstanceState)
 {  
     super.onCreate(savedInstanceState);

        Bundle extras = getIntent().getExtras();
        setContentView(R.layout.job_dialog);

     tabs = getTabHost();
        tabs.setup();
     setupTabs();
 }

 public void setupTabs()
 {     
      TabSpec tspec1 = tabs.newTabSpec("First Tab");
      tspec1.setIndicator("Summary", getResources().getDrawable(R.drawable.tab_main)).setContent(R.id.jobDetail1);   
      tabs.addTab(tspec1);
      TabSpec tspec2 = tabs.newTabSpec("Second Tab");
      tspec2.setIndicator("Details", getResources().getDrawable(R.drawable.tab_message)).setContent(R.id.jobDetail2);
      tabs.addTab(tspec2);
      TabSpec tspec3 = tabs.newTabSpec("Third Tab");
      tspec3.setIndicator("Notes", getResources().getDrawable(R.drawable.tab_jobs)).setContent(R.id.jobDetail3);
      tabs.addTab(tspec3);

XML

<?xml version="1.0" encoding="utf-8"?>


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

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:padding="5dp">

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:padding="5dp" />

       <LinearLayout
   android:id="@+id/jobDetail1"
      android:orientation="vertical"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent" >   

  </LinearLayout>  

       <LinearLayout
   android:id="@+id/jobDetail2"
      android:orientation="vertical"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent" >   

  </LinearLayout>  

  <LinearLayout
   android:id="@+id/jobDetail3"
      android:orientation="vertical"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent" >   

  </LinearLayout>

    </LinearLayout>
</TabHost>
+1  A: 

I think the 3 linear layouts, jobDetail1->3 should be within the FrameLayout xml element. The point of the FrameLayout is that all of the views are on top of each other, and thus the tab manager can decide which view to show.

Mayra
Thanks! THis was it. I was closing the FrameLayout where I defined it instead of outside of the child layouts.
Tom G