Esto es para niveles de API 10 y por debajo:
En primer lugar debe reemplazar onCreateDialog (int id, args Bundle) en la clase de actividad, es que lo que estás haciendo? Los diálogos siempre se crean y se muestran como parte de la Actividad. En segundo lugar, no creo que pueda cancelar/descartar un diálogo en CreateDialog porque no se ha creado realmente cuando se llama a onCreateDialog. Es decir, no puede cancelar/descartar algo que no se ha creado. Lo que puede intentar es anular OnPrepareDialog() en su lugar y hacer su verificación para cancelar/descartar el diálogo allí. En ese momento, el cuadro de diálogo debería haberse creado (simplemente no se muestra), por lo que podría evitar que se muestre si llama a cancelar/descartar allí.
onPrepareDialog() es el lugar adecuado para realizar cualquier tipo de comprobaciones y toma de decisiones en el cuadro de diálogo que se va a mostrar. Esto es para API antes de Honeycomb.
Esto es para las API 11 y posteriores:
Si está utilizando una API más tarde, usted debe extender DialogFragment lugar. En este caso, creo que puede manejar la toma de decisiones en el método onCreateView() de DialogFragment, que es similar a onPrepareDialog().
espero que haya leído esto: http://developer.android.com/guide/topics/ui/dialogs.html
o esto, dependiendo de su API:
http://developer.android.com/reference/android/app/DialogFragment.html
En general, tal vez una solución más limpia es desactivar el botón o mecanismo que hace que el diálogo aparezca en primer lugar? Es decir, escriba el código de modo que solo se llame a Dialog.show() cuando realmente necesita ser llamado. Tendría que saber más detalles sobre qué es exactamente lo que estás tratando de hacer. Por ejemplo, supongamos que llamas a Diálogo.show() desde onClickListener de un botón. no desea que el usuario presione un botón, espera un diálogo, pero no se muestra debido a alguna razón que el usuario no comprende. Una mejor solución sería desactivar el botón para que el usuario sepa que esta función no está disponible debido a otra cosa en la aplicación.
¿Está llamando a super.onCreate() en su método onCreate() ?? – RaphMclee
¿Para qué nivel de API está escribiendo esto? –