1

当我尝试启动包含 tabhost 的活动时出现以下错误。

08-25 16:51:42.551: 错误/AndroidRuntime(27863): java.lang.RuntimeException: 无法启动活动 ComponentInfo{com.paratransit/com.paratransit.jobDialog}: java.lang.RuntimeException: 无法创建选项卡内容因为找不到 ID 为 2131165185 的视图

这是我的代码。任何人都可以帮忙吗?

爪哇

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

2 回答 2

1

我认为 3 个线性布局 jobDetail1->3 应该在 FrameLayout xml 元素中。FrameLayout 的要点是所有视图都在彼此之上,因此选项卡管理器可以决定显示哪个视图。

于 2010-08-25T21:24:04.403 回答
1

我认为您收到此错误是因为您没有在 FrameLayout 中包含 LinearLayout,此外我认为您需要在 LinearLayout 中放置一些元素视图。

像这样的东西

<?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>
于 2012-08-02T16:24:46.487 回答