Pregunta

Estoy usando exmaple de de Google Hola, TabWidget pero alterado para parecerse a esto:

main.xml:

<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <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">
            <TextView 
                android:text="@+layout/text"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" />
            <TextView 
                android:id="@+id/textview2"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" 
                android:text="this is another tab" />
            <TextView 
                android:id="@+id/textview3"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" 
                android:text="this is a third tab" />
        </FrameLayout>
    </LinearLayout>
</TabHost>

archivo Java:

public class HelloTabWidget extends TabActivity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        TabHost mTabHost = getTabHost();

        mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator("TAB 1").setContent(R.layout.text));
        mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator("TAB 2").setContent(R.id.textview2));
        mTabHost.addTab(mTabHost.newTabSpec("tab_test3").setIndicator("TAB 3").setContent(R.id.textview3));

        mTabHost.setCurrentTab(0);
    }
}

y aquí está la text.xml en res / layout:

<LinearLayout
    android:id="@+id/LinearLayout01"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android" >

    <TextView
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:text="This is Tab 1" />
</LinearLayout>

Lo que estoy básicamente tratando de hacer es que cada pestaña se refieren a su propio archivo XML en lugar de todos en main.xml, pero el texto en la primera pestaña no aparece.

¿Fue útil?

Solución

¿Está tratando de tener cada ficha se refiere a su propia Activity? Si es así, puede configurar un intento como el contenido de cada ficha:

intent = new Intent().setClass(this, Test.class);       
spec = tabHost.newTabSpec("tab_test1").setIndicator("TAB 1").setContent(intent);
        tabHost.addTab(spec);

Por supuesto, a continuación, había que tener una clase llamada de prueba (o cualquier otra cosa) que los conjuntos test.xml como el diseño.

public class Test extends Activity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);
    }
}

Este tutorial le ayudará aún más si este es el tipo de escenario que se está tratando de establecer.

Otros consejos

Hay tres opciones para las pestañas utilizando el incorporado en la pestaña de acogida.

  1. Múltiples puntos de vista sobre una misma actividad con un archivo de diseño
  2. Múltiples actividades
  3. Las vistas personalizadas construidas en un TabContentFactory

Parece que usted quiere # 3. Lo que hay que hacer es algo como esto:

setContent(new TabHost.TabContentFactory() {
    public View createTabContent(String tag)
    {
        View view = LayoutInflater.from(HelloTabWidget.this).inflate(R.layout.text);
        // Setup the view here
        return view;
    }});
View view = LayoutInflater.from(HelloTabWidget.this).inflate(R.layout.text);

Eso no es del todo bien como LayoutInflater.inflate toma dos parámetros.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top