Tab host – setCurrentTab (x) funciona para la ficha, pero no un contenido

He creado ficha app .. ahora estoy jugando con la rotación de la pantalla. Intenté establecer tabHost.getTabWidget().setCurrentTab(1) , que debería mostrar la segunda pestaña (primero es 0). El punto es que la segunda pestaña se muestra como seleccionada, pero el contenido mostrado es de la primera pestaña … ¿Cómo puedo resolver eso?

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.main); myCommunicator = new Communicator(); dbAdapter = new ToDoDBAdapter(this); if (getLastNonConfigurationInstance() != null) { CurrentTab = (Integer)getLastNonConfigurationInstance(); createView(); } else { BuildDialog = ProgressDialog.show(this, "Loading", "Updating data...", true, false); BuildDialog.show(); new LoadChannels().execute(); } } private void createView() { tabHost = (TabHost)findViewById(android.R.id.tabhost); tabHost.setOnTabChangedListener(this); Intent intent; TabSpec spec; intent = new Intent().setClass(this, Channels.class); // TAB 1 spec = tabHost.newTabSpec("kanali").setIndicator("Kanali",getResources().getDrawable(R.drawable.menu_channels)).setContent(intent); tabHost.addTab(spec); intent = new Intent().setClass(this, Currently.class); // TAB 2 spec = tabHost.newTabSpec("trenutno").setIndicator("Trenutno",getResources().getDrawable(R.drawable.menu_current)).setContent(intent); tabHost.addTab(spec); intent = new Intent().setClass(this, Reminders.class); // TAB 3 spec = tabHost.newTabSpec("opomniki").setIndicator("Opomniki",getResources().getDrawable(R.drawable.menu_reminder)).setContent(intent); tabHost.addTab(spec); intent = new Intent().setClass(this, About.class); // TAB 4 spec = tabHost.newTabSpec("oprogramu").setIndicator("O programu",getResources().getDrawable(R.drawable.menu_about)).setContent(intent); tabHost.addTab(spec); tabHost.setBackgroundColor(Color.WHITE); tabHost.setCurrentTab(1); // Should always set content to second } 

@Override public Object onRetainNonConfigurationInstance () {return CurrentTab; }

 @Override public void onTabChanged(String tabId) { CurrentTab = tabHost.getCurrentTab(); } public void onDestroy() { super.onDestroy(); // Close the database try { dbAdapter.close(); } catch (Exception e) { // TODO: handle exception } } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); setContentView(R.layout.main); createView(); } 

¿Por qué llamas a getTabWidget() ? Debe utilizar el setCurrentTab() en el propio tabHost .

Funciona bien aquí.

 tabHost.setCurrentTab(1); 

Utilice setCurrentTabByTag (etiqueta String); Dependiendo de la etiqueta que mencionó sería la pestaña predeterminada, espero que ayude, funciona (Es currectly trabajando para este código!)

 private static final String A ="Kanali"; //required defualt tab name . . . tabHost.setCurrentTabByTag (A); 

enlazar

¿Comprobó TabHost en el depurador para asegurarse de que todas las pestañas se agregaron correctamente antes de intentar establecer el currentTab? Tuve un problema similar y encontré que TabHost.setCurrentTab permanece establecido en -1 si intenta hacer referencia a un índice que está fuera del intervalo de pestañas que no se agregaron correctamente. Este comportamiento no está documentado en la documentación de Android.

Utilice tabs.getTabAt(position).select();

  • Android: personalización de la apariencia de Tabs con TabHost y TabWidget
  • Aplicación de Android con ActionBar NullPointerException con configuración regional no predeterminada
  • carga diferentes actividades en pestañas
  • Pestañas en TabLayout no llenar toda ActionBar
  • Número de pestañas en ActionBar
  • ¿Cómo hacer que el tamaño de tablayout sea igual?
  • ActionBarSherlock: las pestañas que aparecen ABOVE barra de acciones con vista personalizada
  • TabHost setCurrentTab sólo llama al método oncreate para Actividad en la pestaña una vez
  • Las pestañas se muestran de forma diferente dependiendo de si Theme.NoTitleBar está establecido o no en el manifiesto
  • Cambiar entre la pestaña mediante el grupo de actividades desea mostrar la última actividad - Tab ActivityGroup
  • FragmentPagerAdapter problemas y problemas: Constructor Undefined
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.