Pregunta

Estoy teniendo un problema con el uso de TabHost en un nuevo intento de tipo TabActivity que espero que me puede apuntar en la dirección correcta. Curiosamente funciona bien cuando intento visualizarla en el original Intención: setContentView (R.layout.main)

Puedo obtener un "obligado cerrado" y dentro de Logcat, me sale el siguiente error a pesar de que mi Tabhost id = "@android: id / tabhost":

  

02-18 22: 23: 11.937:   ERROR / Android Runtime (5944): Causado por:   java.lang.RuntimeException: Su   contenido debe tener un TabHost cuyo id   atributo es 'android.R.id.tabhost'

He declarado el segundo intento en el archivo Manifest.xml: XML:

<activity android:name=".NextActivity" android:label="@string/app_name" > 

Dentro de la primera actividad (MainActivity), comienzo de la segunda intención (NextActivity), con extras, como sigue:

Intent nextActivity = new Intent(MainActivity.this,NextActivity.class); 
Bundle b_next=new Bundle(); 

b_next.putString("s_string", myString); 

nextActivity.putExtras(b_next); 

En mi archivo NextActivity.java, consigo los extras y tratar de mostrar la TabHost Ver:

public class NextActivity extends TabActivity { 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 

        String myString; 
        Bundle b_initial; 

        b_initial = getIntent().getExtras(); 

        myString = b_initial.getString("s_string"); 

     setContentView(R.layout.main); 

        } 
}

Me sale el mismo error con el uso del ejemplo TabHost en el sitio para desarrolladores de Android (Ver Hellow):

Main.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"> 
        <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:id="@+id/textview1" 
                android:layout_width="fill_parent" 
                android:layout_height="fill_parent" 
                android:text="this is a tab" /> 
            <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>

Gracias anticipadas en la gente ...

Aclaración: Esto es lo que realmente recibo de LogCat:

  

java.lang.NullPointerException
       en android.widget.TabHost.dispatchWindowFocusChanged (TabHost.java 285)        en android.view.ViewGroup.dispatchWindowFocusChanged (ViewGroup.java 640)        en android.view.ViewGroup.dispatchWindowFocusChanged (ViewGroup.java 640)        en android.view.ViewGroup.dispatchWindowFocusChanged (ViewGroup.java 640)        en android.view.ViewRoot.handleMessage (ViewRoot.java 1645)        en android.os.Handler.dispatchMessage (Handler.java 99)        en android.os.Looper.loop (Looper.java 123)        en android.app.ActivityThread.main (ActivityThread.java 3948)        en java.lang.reflect.Method.invokeNative (Nativo   Método)
       en java.lang.reflect.Method.invoke (Method.java 521)        en com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java 782)        en com.android.internal.os.ZygoteInit.main (ZygoteInit.java 540)        en dalvik.system.NativeStart.main (Nativo   Método)

¿Fue útil?

Solución

I han construido previamente tabhosts con un id de android:id="@+id/tabhost". ¿Esto funciona para usted?

También podría considerar la construcción de vista de la pestaña programación:

    TabHost t = getTabHost();
    TabSpec tab = t.newTabSpec(label)
                   .setIndicator(label, icon)
                   .setContent(intent);
    t.addTab(tab);

Otros consejos

Yo tenía el mismo problema. Por suerte había una solución rápida:

  1. Eliminar el archivo R.
  2. Espere a que su IDE para generar el archivo.
  3. beneficio!

Me había copiado y pegado de código y se dio cuenta de que en el atributo id que tenía:

android:id="@+id/tabs" 

cuando lo que realmente quería era:

android:id="@android:id/tabs"

También se encontró con este problema. Tenía un archivo XML que no estaba enlazado con el código correctamente en mi res / layout. Cuando me fijo el nombramiento, el problema desapareció.

a pesar de que había cambiado de main.xml al uso android:id="@android:id/tabhost" como el error indicado, se siguió tratando de utilizar el nombre antiguo. Finalmente encontré la resolución de archivo / layout-puerto / main.xml que era idéntico al utilizado main.xml excepto el mal androide: id. debo haber añadido una vista vertical accidentalmente y fue aferrarse al valor anterior. o bien fijar el archivo de retrato o retirarlo soluciona mi problema.

También tenía este error. Para mí sería aparecer después de la ofuscación (a través de ProGuard), pre ofuscación que estaba bien.

Al final Retitulé mi archivo de diseño a algo más complejo y único, y no lo hice ProGuard estropear el enlace. easer poco de ir por el camino ProGuard configeration.

Así que mi problema era similar a SapphireSun, aunque expresado a través de un proceso diferente (y el eclipse de correos, sólo para hacer las cosas que poco más difícil).

Esta es quizás una de las formas más oscuras de conseguir este error, pero pensé que vale la pena mencionar.

"public class NextActivity extends TabActivity" --Cambie TabActivity a ActivityGroup.

cuando ocurra un problema cuando se quiere wo plazo tabhost en tabhost.it está bien.

Estoy experimentando el mismo error en un equipo de proyecto, cuando se utiliza SVN. A veces, eclipse subidas classes.dex y resources.ap_ de la carpeta bin del proyecto y otros consiguen a través de actualización de SVN.

Dado que estos archivos binarios se generan en las máquinas individuales con código individual, eso es probablemente donde el error proviene de.

Limpieza de los archivos de proyecto (Proyecto -> Limpio) siempre se resolvió el problema para nosotros

!

Yo tenía este tema, junto con 'ERROR: Desconocido opción '--no-crisis''. Si ha actualizado ADT plug-in en Eclipse, pero no han actualizado el SDK al mismo tiempo. La actualización del SDK Manager en Eclipse, fija el problema para mí.

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