Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/03/2014, 12:04
Sawler
 
Fecha de Ingreso: noviembre-2012
Mensajes: 10
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Botón hacia atrás

Buenas, no se si te será de ayuda, pero te comento como tengo yo implementado el botón volver.

Mi proyecto va cargando Fragments.
Cada fragment tiene un numero identificativo definido en una clase Constantes.

Tengo un método cargarSeccion, que lo que hace es llamar al Fragment que se pase como parámetro y mete en la pilla de llamadas la sección que se acaba de cargar:

Código:
FragmentManager fragmentManager = activity.getSupportFragmentManager();
fragmentManager.beginTransaction().addToBackStack(String.valueOf(menuSeleccionado)).commitAllowingStateLoss();
Luego, sobreescribo el método onBackPressed de la actividad.
Si la pila anteriormente citada no está vacia, recupero la última sección que se había cargado, la cargo y elimino el elemento de la pila, de forma que si vuelves a pulsar atrás, se carga la anterior.. asi sucesivamente.

Código:
    @Override
    public void onBackPressed() 
    {
    	super.onBackPressed();
		
    	FragmentManager fm = getFragmentManager();
    	int cantidadApilados = fm.getBackStackEntryCount();
    	if(cantidadApilados > 0)
    	{
    		int menuVolver = Integer.parseInt(fm.getBackStackEntryAt(cantidadApilados - 1).getName());
		ProjectUtils.cargarSeccion(menuVolver);
			
    		// Elimino la última llamada que se había realizado
    		fm.popBackStack();
    	}
    	else
    	{
    		Intent intent = new Intent(Intent.ACTION_MAIN);
    		intent.addCategory(Intent.CATEGORY_HOME);
    		intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    		startActivity(intent);
    	}
    }
A mi al menos me funciona perfecto.
Saludos!