开发者

Android tabhost issue...code included

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>开发者_StackOverflow社区;


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.


I think you're getting this error because you are not including the LinearLayout inside the FrameLayout, besides I think you need to put some element view inside the LinearLayout's.

Something like this

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:id="@+id/establecimientoView">

<TabHost 
    android:id="@android:id/tabhost"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >


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

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

         <FrameLayout android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:id="@android:id/tabcontent" >


            <LinearLayout
                android:id="@+id/tabIdEst"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical" >

                 <include layout="@layout/identificacion_establecimiento"/>

            </LinearLayout>


            <LinearLayout
                android:id="@+id/tabRefGeo"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical" >

                 <include layout="@layout/referencia_geografica"/>
            </LinearLayout>

            <LinearLayout
                android:id="@+id/tabUbicEstablecimiento"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical" >

                 <include layout="@layout/ubicacion_establecimiento"/>
            </LinearLayout>

                <LinearLayout
                android:id="@+id/tabVialidades"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical" >

                 <include layout="@layout/entre_vialidades"/>
            </LinearLayout>

         </FrameLayout>
    </LinearLayout>

</TabHost>
</LinearLayout>
0

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜