Cuando se aplica onBackPressed en Fragment que extiende el diálogo Fragment

Quiero implementar onBackPressed en fragmento que extiende un DialogFragment . Pero al reemplazarla da un error que "método no anula su superclase".
¿Cómo implementarlo?
Vea aquí un fragmento del código.

Vea aquí para el código de backpressed

4 Solutions collect form web for “Cuando se aplica onBackPressed en Fragment que extiende el diálogo Fragment”

@Swati como por su comentario, desea salir de su diálogo actual, así como la actividad actual. El diálogo es otro nivel de ventana que se muestra en la parte superior de su actividad actual. El DialogFragment es sólo un shell que sostiene el diálogo real y gestiona el estado, como rotación del dispositivo.

El diálogo en sí mismo ha consumido el keyevent incluyen la contrapresión también. Así que no hay un método de retroproyección tal en DialogFragment.

Yo recomendaría que para obtener el diálogo después de que se creó ver aquí , sobreescribir este método y dejar que la clase super crear el diálogo a continuación, establecer el oyente de salida a ella. En la devolución de llamada del oyente, puede terminar su actividad y volverá a la actividad anterior. También puede utilizar el método getDialog que debería funcionar igual.

Cuando se utilizan fragmentos en la aplicación, los objetos FragmentTransaction individuales pueden representar cambios de contexto que se deben agregar a la pila posterior. Por ejemplo, si está implementando un flujo maestro / detallado en un microteléfono intercambiando fragmentos, debe asegurarse de que al presionar el botón Atrás en una pantalla de detalle, el usuario regrese a la pantalla principal. Para ello, llame a addToBackStack () antes de confirmar la transacción:

 // Works with either the framework FragmentManager or the // support package FragmentManager (getSupportFragmentManager). getSupportFragmentManager().beginTransaction() .add(detailFragment, "detail") // Add this transaction to the back stack .addToBackStack() .commit(); 

Si la aplicación actualiza otros elementos de la interfaz de usuario para reflejar el estado actual de los fragmentos, como la barra de acciones, recuerde actualizar la interfaz de usuario al confirmar la transacción. Debe actualizar su interfaz de usuario después de que cambie la pila trasera además de cuando cometen la transacción. Puede escuchar cuando una FragmentTransaction se invierte configurando un FragmentManager.OnBackStackChangedListener:

 getSupportFragmentManager().addOnBackStackChangedListener( new FragmentManager.OnBackStackChangedListener() { public void onBackStackChanged() { // Update your UI here. } }); 

Sigue esto. Su impresionante ejemplo para implementar la funcionalidad onBackPressed() en Fragment usando Abstract Class .

1) Crear una clase abstracta –

 import android.app.Fragment; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; public abstract class BackableFragment extends Fragment implements View.OnKeyListener { @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); view.setFocusableInTouchMode(true); view.requestFocus(); view.setOnKeyListener(this); } @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_UP) { if (keyCode == KeyEvent.KEYCODE_BACK) { onBackButtonPressed(); return true; } } return false; } public abstract void onBackButtonPressed(); } 

2) Implementar la Abstract Class a su Fragment

 public class FragmentChannels extends BackableFragment { ... @Override public void onBackButtonPressed() { if (doTheThingRequiringBackButtonOverride) { // do the thing } else { getActivity().onBackPressed(); } } ... } 

Eso es. Referencia

Prueba esto

 private boolean exit = false; /* your full actvivty */ @Override public void onBackPressed() { if (exit) { super.onBackPressed(); return; } else { Toast.makeText(this, "Press Back again to Exit.", Toast.LENGTH_SHORT).show(); exit = true; new Handler().postDelayed(new Runnable() { @Override public void run() { exit = false; } }, 2000); } } 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.