Stack Overflow en español Asked by Esteban Sasso on December 25, 2021
Buenas tardes estoy presentando el siguiente problema, al intentar recargar un fragment la aplicación queda colgada y luego el celular se reinicia.
El fragment AdminComment muestra un listView que cuando se presiona uno de estos objetos del listView abre un dialog (DialogAdminRecomendation) y este da dos opciones Aceptar cambios y cancelar. Al final del metodo createSimpleDialog estoy agregando la siguiente linea de codigo para que se recargue el Fragment AdminComment que es el contenedor del ListView:
getFragmentManager().beginTransaction().detach(this).attach(this).commit();
Favor agradeceria mucho si me ayudan indicandome si estoy cometiendo un error o si me dan una idea de como solucionarlo.
De antemano muchas gracias.
Adjunto metodo CreateSimpleDialog
public AlertDialog createSimpleDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Aceptar Cambios")
.setMessage("Esta seguro de aceptar los cambios")
.setPositiveButton("SI",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
listener.onPossitiveButtonClickInsert(idMachinePointAux,titleAux,bodyCommentAux,usuarioFinalAux);
//envio correo avisando
}
})
.setNegativeButton("Eliminar Recomendación",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
listener.onNegativeButtonClickDelete(idMachinePointAux,titleAux,bodyCommentAux,usuarioFinalAux);
//envio correo avisando
}
});
getFragmentManager().beginTransaction().detach(this).attach(this).commit();
return builder.create();
}
Saludos Cordiales
Estas realizando dos operaciones contrarias al tratar de realiza la transaccion lo cual es incorrecto
getFragmentManager().beginTransaction().detach(this).attach(this).commit();
- attach() asocia el Fragment con la Actividad.
- detach() desasocia el Fragment con la Actividad.
Además this
debe ser un Fragmento.
Puedes agregar un Fragment de esta forma (te sugiero usar getSupportFragmentManager
en lugar de getFragmentManager
)
Fragment fragment = getSupportFragmentManager().findFragmentByTag("NombreFragment");
o también mediante el id del Fragment:
Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.my_fragment);
y se procede a realizar la transacción:
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.attach(frg);
ft.commit();
Te sugiero revises la documentacion para que entiendas como lograrlo
Answered by Elenasys on December 25, 2021
Una forma de recargar un fragment sería así:
FragmentAdminComment frag = new FragmentAdminComment();
FragmentManager fm = getFragmentManager();
fm.beginTransaction().replace(R.id.frame, frag).addToBackStack(null).commit();
Answered by armen on December 25, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP