Android tabhost проблема ... код включен

1

Я получаю следующую ошибку, когда пытаюсь запустить действие, содержащее tabhost.

08-25 16: 51: 42.551: ОШИБКА /AndroidRuntime (27863): java.lang.RuntimeException: невозможно выполнить начать деятельность ComponentInfo {com.paratransit/com.paratransit.jobDialog}: java.lang.RuntimeException: не удалось создать вкладку, потому что не удалось найти вид с id 2131165185

Это мой код. Может ли кто-нибудь помочь?

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>
Теги:
android-tabhost

2 ответа

1
Лучший ответ

Я думаю, что 3 линейных макета, jobDetail1- > 3 должны находиться внутри элемента xml FrameLayout. Точка FrameLayout состоит в том, что все представления находятся друг над другом, и, таким образом, менеджер вкладок может решить, какой вид будет отображаться.

  • 0
    Спасибо! Это было оно. Я закрывал FrameLayout там, где я определил его, а не за пределами дочерних макетов.
1

Я думаю, что вы получаете эту ошибку, потому что вы не включаете LinearLayout внутри FrameLayout, кроме того, я думаю, вам нужно поместить некоторый элемент в 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>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню