/ / Android Eclipse, dos actividades en dos pestañas diferentes, ¡sigue llamando aCreate ()! - Android, eclipse, actividad de Android, Android Tabhost

Eclipse de Android, dos actividades en dos pestañas diferentes, ¡sigue llamando aCreate ()! - Android, eclipse, actividad de Android, Android Tabhost

Tengo 2 actividades, digamos "Actividad 1 y Actividad 2. He agregado estas 2 en 2 pestañas separadas debajo de TabHost.

Cada vez que presiono la pestaña requerida para ver los contenidos, se llama a onCreate () para cada actividad y, por lo tanto, ¡se reinicia la actividad! ¿Porqué es eso? ¿Cómo puedo evitar que esto suceda?

Gracias.

Código de la clase TabHostActivity:

package zt.ztactive;

import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;

public class TabHostActivity extends TabActivity {

TabHost tabHost;

/** Called when the activity is first created. */

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tabwindow);

/** TabHost will have Tabs */
tabHost = (TabHost)findViewById(android.R.id.tabhost);

/** TabSpec used to create a new tab.
* By using TabSpec only we can able to setContent to the tab.
* By using TabSpec setIndicator() we can set name to tab. */

/** tid1 is firstTabSpec Id. Its used to access outside. */
TabSpec firstTabSpec = tabHost.newTabSpec("tid1");
TabSpec secondTabSpec = tabHost.newTabSpec("tid1");

/** TabSpec setIndicator() is used to set name for the tab. */
/** TabSpec setContent() is used to set content for a particular tab. */
firstTabSpec.setIndicator("First Tab Name").setContent(new Intent(this,Activity1.class));
secondTabSpec.setIndicator("Second Tab Name").setContent(new Intent(this,Activity2.class));

/** Add tabSpec to the TabHost to display. */
tabHost.addTab(firstTabSpec);
tabHost.addTab(secondTabSpec);
}

}

Respuestas

4 para la respuesta № 1

¿Puedes mostrar algún código de cómo estás usando?Actividades en su tabhost. Idealmente, una vez que se crea la pestaña, las actividades llamarán a Reanudar y no a Crear, ya que las actividades no se destruyen cuando se mueve de una pestaña a otra.


1 para la respuesta № 2

Para preservar la memoria, se cargan en un punto las menos actividades posibles. Como una actividad no es visible cuando la pestaña no se muestra, la actividad se destruye.

O no debe crear una actividad para cada pestaña sino que debe tener diferentes vistas para cada pestaña en la misma actividad, o debe guardar el estado de la actividad para cuando se cargue de nuevo.

Aquí hay un pequeño ejemplo de cómo hacer un tabhost sin actividades: http://dewful.com/?p=15


1 para la respuesta № 3

reemplazar este TabSpec firstTabSpec = tabHost.newTabSpec ("tid1");
TabSpec secondTabSpec = tabHost.newTabSpec ("tid1"); con:

TabSpec firstTabSpec = tabHost.newTabSpec ("tid1");
TabSpec secondTabSpec = tabHost.newTabSpec ("tid2");


0 para la respuesta № 4

El problema para mí fue el mismo que PravinCG describe anteriormente. Asegurándose de que las etiquetas en todas las TabSpecs sean únicas, ¡resolverá el problema fácilmente!