Actividad en TabHost

Yo uso un TabHost. El código a continuación para llamar AActivity.

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

Y está en la pestaña. Pero en AActivity llamo BActivity. La BActivity abrirá una nueva página, pero no en la pestaña. ¿Cómo dejarlo en el marco de la pestaña? AActivity utilizar debajo de código para llamar BActivity:

 it = new Intent(this, BActivity.class); startActivity(it); 

Si desea abrir varias actividades en la pestaña, a continuación, en Lugar de actividad, utilice el grupo de actividades para la ficha par y cambie de vista en este grupo de actividades para abrir Actividad múltiple en una sola pestaña

Puede obtener ayuda de este tutorial

Debe cambiar la pestaña actual seleccionada. Hay un método llamado setCurrentTabByTag(String tag) en la clase TabHost que hará eso, simplemente pasa el nombre de la etiqueta de tu pestaña (que en tu caso es B), o puedes usar el setCurrentTab(int index) y pasar el índice de la pestaña .

Ejemplo. Normalmente tengo una clase MainActivity, que es mi TabActivity. Dentro de esta clase, crearé todas las pestañas que necesito en el método onCreate.

Primero establezco un int estático con los índices de las pestañas.

  // Tab index. public static int FIRST_TAB = 0; public static int SECOND_TAB = 1; 

Más tarde, creo mis pestañas en el método onCreate.

  @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Setting the content view. setContentView(R.layout.main); // Getting the TabHost object. mTabHost = getTabHost(); // Declaring the Intent object for the tabs. Intent intent; // Creating the First tab. intent = new Intent().setClass(this, MyFirstActivity.class); addTab(mTabHost, "First", FIRST_TAB, intent) // Creating the Second tab. intent = new Intent().setClass(this, MySecondActivity.class); addTab(mTabHost, "Second", SECOND_TAB, intent); // Setting the current tab. switchTab(FIRST_TAB); } public void addTab(TabHost host, String title, String tag, Intent intent) { TabHost.TabSpec spec = host.newTabSpec(tag); spec.setContent(intent); spec.setIndicator(title); host.addTab(spec); } 

Y último el método que cambiará la pestaña actual.

 public void switchTab(int index) { mTabHost.setCurrentTab(index); } 

Más tarde, dentro de la MyFirstActivity puede llamar al método mainActivity swichTab y pasar el índice de la ficha para cambiarlo. Puede recuperar MainActivity llamando al método getParent() de la clase Activity.

 MainActivity parent = (MainActivity)getParent(); 

En la clase de actividad tab donde se crea el tabhost, implemente el siguiente método.

 public void switchTab(int tab){ tabHost.setCurrentTab(tab); } 

En AActivity / BActivity, implemente el siguiente método y llámelo en cualquier evento (que necesite):

 public void switchTabInActivity(long indexTabToSwitchTo){ TabActivity tabActivity; tabActivity = (TabActivity) this.getParent(); tabActivity.switchTab(indexTabToSwitchTo); } 

Aquí TabActivity es la clase donde se crea tabhost

  • Buscando un estilo TabHost universal que funcione en Android, HTC Sense, Samsung, etc. skins
  • Android cómo putExtra a una actividad de la actividad TabHost?
  • Obtener índice de la pestaña seleccionada en tabHost
  • Comprender la actividad setContentView
  • ViewPager dentro de Fragmento pierde contenido al volver a él
  • La actividad en el host de tabulación se queda en blanco
  • Android: TabHost - pasar los parámetros a los fragmentos
  • Mostrar una barra de progreso en una ficha secundaria hasta que el WebView se cargue
  • Reemplazo de TabActivity con FragmentActivity y Fragments
  • Tab Layout tutorial incompleto?
  • Android: Cómo crear pestañas como las que aparecen en la página de la interfaz de usuario de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.