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); 

3 Solutions collect form web for “Actividad en TabHost”

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

  • OnResume () no se activa en los elementos TabHost
  • ¿Cómo obtener el contenido de una pestaña dentro de TabHost?
  • Barra de título de Android dejando espacio cuando se reanuda la aplicación
  • Android - android.widget.TabHost no se puede convertir en android.support.v4.app.FragmentTabHost
  • Android usando viewPager vs usando tabhost
  • Quitar fragmento antiguo del gestor de fragmentos
  • Fragmentos no visibles después de cambiar tabulación en FragmentTabHost anidado
  • Cambiar el texto en una pestaña de Android
  • Problema para ejecutar android Ejemplo de HelloTabWidget - NullPointerException en addTab ()
  • Android cómo putExtra a una actividad de la actividad TabHost?
  • Texto en la parte superior del diseño de host de la pestaña Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.