Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 25/01/14, 20:00:28
Avatar de Dild0
Dild0 Dild0 no está en línea
Usuario muy activo
Mensajes: 860
 
Fecha de registro: may 2009
Mensajes: 860
Versión de ROM: CyanogenMOD
Tu operador: Pepephone
Mencionado: 3 comentarios
Tagged: 0 hilos
problema con fragment

buenas tengo un contenedor de fragment en el cual inflo un fragment

El problema es al girar la pantalla se recarga la activdad pero pierdo el control sobre el
Tengo una clase publica dentro de ese fragment para poder llamarla desde el activityfragment funciona la primera vez pero al girar y recargar cmo q pierde su referencia la variable.

Cita:
public class ListadoActivity extends BaseFragmentActivity {

private ListadoFragment listado = new ListadoFragment();

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listado_container);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);

if (findViewById(R.id.fragment_container) != null) {

if (savedInstanceState != null) {
//listado = getFragmentManager().getFragment(bundle, key)

return;
}

listado.setArguments(getIntent().getExtras());
getFragmentManager().beginTransaction().add(R.id.f ragment_container, listado).commit();
getFragmentManager().saveFragmentInstanceState(lis tado);
}
}

@Override
public void onBackPressed() {

if (listado.volver())
super.onBackPressed();

}

}
listado volver() ya no me deja llamarlo porq es como si todas sus variables estuvieran vacias
Responder Con Cita


  #2  
Viejo 25/01/14, 22:37:17
Avatar de Arasthel
Arasthel Arasthel no está en línea
Cocinero veterano
Mensajes: 1,946
Compra y venta: (1)
 
Fecha de registro: jun 2009
Localización: Almería
Mensajes: 1,946
Modelo de smartphone: Nexus 5
Versión de ROM: DroidKang
Tu operador: Amena
Mencionado: 393 comentarios
Tagged: 1 hilos
Cada vez que se ejecuta el onCreate (en cada rotación) añades un ListadoFragment (siempre el mismo, por lo que veo) al Fragment Manager, no creo que eso sea recomendable. En lugar de .add yo usaría .replace. No sé si eso arreglaría el problema, pero creo que es aconsejable.

Un saludo.
Responder Con Cita
  #3  
Viejo 25/01/14, 23:43:33
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Creo que deben ser Fragments distintos, si no daría error al hacer el "add", te diría que ya existe en un contexto.

Es un error raro, te digo lo que hago yo y me funciona bien (te lo pongo con mis datos, es copy&paste de un fragmento de mi código)

En el onCreate():

if (savedInstanceState==null)
fragment = new CrearPlanFragment();
else
fragment = (CrearPlanFragment) getSupportFragmentManager().getFragment(savedInsta nceState, "crearplanfragment");
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.fragment, fragment);
ft.commit();

El código del onSaveInstanceState():

@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);

getSupportFragmentManager().putFragment(outState, "crearplanfragment", fragment);
}
Responder Con Cita
  #4  
Viejo 25/01/14, 23:58:32
Avatar de Dild0
Dild0 Dild0 no está en línea
Usuario muy activo
Mensajes: 860
 
Fecha de registro: may 2009
Mensajes: 860
Versión de ROM: CyanogenMOD
Tu operador: Pepephone
Mencionado: 3 comentarios
Tagged: 0 hilos
Buenas

Ahora no puedo probar tu codigo kriogen

En cuando a cambiar add por replace puse trazas, lo hice y cierto q ya no me añade un nuevo fragment pero tengo 2 o al menos eso me indican las trazas, cada rotacion hace 2 veces con el add añade una mas a las que ya hay, mañana os comento

Gracias por la ayuda makinas
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 20:46:20 (GMT +2)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007