Foros del Web » Programando para Internet » Android »

Botón hacia atrás

Estas en el tema de Botón hacia atrás en el foro de Android en Foros del Web. Buenas noches, Tengo una duda cuando voy hacia atrás, vuelvo al MainActivity, lo que quiero es cerrar, sin cerrar la aplicación. vamos a ponerlo sencillo ...
  #1 (permalink)  
Antiguo 10/03/2014, 14:26
(Desactivado)
 
Fecha de Ingreso: agosto-2011
Mensajes: 327
Antigüedad: 12 años, 8 meses
Puntos: 3
Botón hacia atrás

Buenas noches,


Tengo una duda cuando voy hacia atrás, vuelvo al MainActivity, lo que quiero es cerrar, sin cerrar la aplicación.

vamos a ponerlo sencillo para que nadie se descoloque... cuando whatssap estás en la lista, que pasa cuando le damos hacia atrás? fácil, se vuelve al home o donde se había quedado, no vuelve al MainAcitivty y vuelve a conectar.

Cómo hago esa función ?

OnBackPressed(); me gustaría que no fuera la cosa con eso, si no con sharedpreferences.

Un saludo.

Última edición por drakgoku1; 10/03/2014 a las 19:05
  #2 (permalink)  
Antiguo 14/03/2014, 12:04
 
Fecha de Ingreso: noviembre-2012
Mensajes: 10
Antigüedad: 11 años, 6 meses
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!

Etiquetas: activity, hacia
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:09.