5

Estoy tratando de implementar la Vista de pestañas para mi actividad. Me aparece un error que dice.Android TabView error?

java.lang.IllegalArgumentException: debe especificar una forma de crear el indicador pestaña

 Resources res = getResources(); // Resource object to get Drawables 
     TabHost tabHost = getTabHost(); // The activity TabHost 
     TabHost.TabSpec spec; // Resusable TabSpec for each tab 
     Intent intent; // Reusable Intent for each tab 

     // Create an Intent to launch an Activity for the tab (to be reused) 
     intent = new Intent().setClass(this, MonthActivity.class); 

     // Initialize a TabSpec for each tab and add it to the TabHost 
     spec = tabHost.newTabSpec("Month") 
         .setContent(intent); 
     tabHost.addTab(spec); 

     // Do the same for the other tabs 
     intent = new Intent().setClass(this, WeekActivity.class); 
     spec = tabHost.newTabSpec("Week") 
       .setContent(intent); 
     tabHost.addTab(spec); 

     intent = new Intent().setClass(this, DayActivity.class); 
     spec = tabHost.newTabSpec("Day") 
       .setContent(intent); 
     tabHost.addTab(spec); 
     tabHost.setCurrentTab(2); 

Ésta es mi xml y he declarado las actividades en el manifiesto.

<?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:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    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" > 
     </FrameLayout> 
</LinearLayout> 

¿Dónde estoy haciendo mi error? Gracias por tu tiempo y tu aporte.

Respuesta

8

probar esto:

Resources res = getResources(); // Resource object to get Drawables 
tabHost = getTabHost(); // The activity TabHost 
TabHost.TabSpec spec; // Resusable TabSpec for each tab  
Intent intent; // Reusable Intent for each tab 

intent = new Intent().setClass(this, First.class);  
spec = tabHost.newTabSpec("First Tab").setIndicator("First Tab",res.getDrawable(R.drawable.icon)).setContent(intent); 
tabHost.addTab(spec); 

intent = new Intent().setClass(this, Second.class); 
spec = tabHost.newTabSpec("Second Tab").setIndicator("Second Tab",res.getDrawable(R.drawable.icon)).setContent(intent); 
tabHost.addTab(spec); 

tabHost.setCurrentTab(1); 

y asegúrese de que, su actividad debe ser un TabActivity donde se define su TabHost.

4

Una respuesta más clara y precisa es que no ha llamado al método setIndicator en el objeto TabHost.TabSpec, de modo que si agrega esta llamada a cada objeto de especificación de tabulación, su problema se resolverá.

spec.setIndicator ("Tab 1");