¿Cómo configurar el diálogo de progreso para que no se pueda cancelar cuando se administra como un fragmento?
Estoy usando un ProgressDialog
administrado como un Fragment
. Incluso si configuro el ProgressDialog
para que no sea cancelable, el botón BACK seguirá funcionando para eliminar ese Fragment
de la pila. Mi clase interna se ve así:
public static class ProgressDialogFragment extends DialogFragment { private DialogStyle dialogStyle; public static ProgressDialogFragment newInstance(String title, String message) { ProgressDialogFragment fragment = new ProgressDialogFragment(); Bundle args = new Bundle(); args.putString("title", title); args.putString("message", message); fragment.setArguments(args); return fragment; } public void setDialogStyle(DialogStyle dialogStyle) { this.dialogStyle = dialogStyle; } @Override public ProgressDialog onCreateDialog(Bundle savedInstanceState) { String title = getArguments().getString("title"); String message = getArguments().getString("message"); ProgressDialog progressDialog = new ProgressDialog(getActivity()); progressDialog.setTitle(title); progressDialog.setMessage(message); if(dialogStyle!=null) { switch (dialogStyle) { case CANCELABLE: progressDialog.setCancelable(true); break; case NON_CANCELABLE: progressDialog.setCancelable(false); break; } } else { progressDialog.setCancelable(false); } progressDialog.show(); return progressDialog; } }
Y entonces el método que expongo es:
- Error al inflar el fragmento de clase
- Cómo obtener elementos en el cajón de navegación para cambiar la vista
- Las vistas de texto en un diseño de fragmento no cambian al llamar a SetText ()
- Configuración de imágenes de url en ViewPager Android
- Android: Fragmento de diálogo y problemas de Backstack
public void showProgressDialog(String title, String message, DialogStyle dialogStyle) { Fragment prev = fragmentManager.findFragmentByTag("progress dialog"); if(prev!=null) { ft.remove(prev); } ft.addToBackStack(null); DialogFragment newFragment = ProgressDialogFragment.newInstance(title, message); ((ProgressDialogFragment)newFragment).setDialogStyle(dialogStyle); newFragment.show(fragmentManager, "progress dialog"); }
Así que la obvia confusión aquí es que el botón BACK elimina el ProgressDialog
porque está siendo administrado como un Fragment
. Entonces, ¿cómo puedo hacerlo para que el Dialog
no se puede cancelar?
Parece extraño intentar algo como:
@Override public void onBackPressed() { if(fragmentManager.fragmentManager.findFragmentByTag("progress dialog")!=null) { } }
- Fragmento de error: tipos incompatibles, requiere android.app.fragment pero encontró activity.messagefragment
- ¿Cómo obtener una referencia a la última backstack estalló fragmento?
- Desplazamiento vertical en el visor
- Imagen GridView Fragmento interior
- El comportamiento de popBackStack () difiere después de la actualización de la biblioteca de soporte de 23.1.1 a 25.1.0
- Android Phonegap y Fragmentos
- ¿Cuál es la diferencia entre getView () y getActivity ()?
- Refrescar vista de fragmentos mientras utiliza FragmentStatePagerAdapter
En lugar de ProgressDialog, ¿por qué no intenta setCancelable(false)
en DialogFragment?
También puede utilizar setCancelable(false)
en ProgressDialog
- FrameLayout a RelativeLayout ClassCastException incluso si no hay FrameLayout usado
- 'Cordova add platform android' con versión específica