2010-02-08 9 views
11

¿Hay una manera simple de cambiar el contenido de un cuadro de diálogo en Android sin tener que volver a crear el cuadro de diálogo? Sé que Activity.onCreateDialog() solo se llama una vez cuando primero se necesita crear el diálogo, y aquí es donde inicialmente se establece el contenido del diálogo. Necesito cambiar los contenidos del diálogo más tarde, así que me pregunto cuál es la forma correcta de hacerlo.Cambiar el contenido de un cuadro de diálogo de Android después de la creación

Respuesta

8

Se llama al onPrepareDialog() method justo antes de que se muestre Dialogallowing you to update it appropriately.

Ha pasado la misma ID int como onCreateDialog() y la Dialog que ha creado en ese método.

@Override 
protected void onPrepareDialog(int id, Dialog dialog) { 
    //Always call through to super implementation 
    super.onPrepareDialog(id, dialog); 

    switch (id) { 
     case DIALOG_TIME: 
      ((AlertDialog)dialog).setMessage("The time is " + new Date()); 
      break; 
    } 
} 
+0

No sé cómo me lo perdí. ¡Gracias! – tronman

+5

Esto funciona bien si desea cambiar un icono, mensaje, título y algunos otros elementos, pero no creo que funcione si desea cambiar los elementos de una lista. Por ejemplo, si llamó al método setSingleChoiceItems() de AlertDialog.Builder, no puede cambiar estos elementos en onPrepareDialog(). La única solución es crear un OnDismissListener para el diálogo que invoca removeDialog() ... esto obliga al método onCreateDialog() a llamarse cada vez. – tronman

0

anterior no funcionó para mí. llamando al removeDialog funcionó sin descartar el AlertDialog

Cuestiones relacionadas