Problema usando ProgressDialog con onCreateDialog / onPrepareDialog
-
25-09-2019 - |
Pregunta
Estoy usando el siguiente código para crear un ProgressDialog ( dentro de mi actividad):
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DIALOG_LOOKUP:
return new ProgressDialog(this, ProgressDialog.STYLE_SPINNER);
}
return null;
}
@Override
protected void onPrepareDialog(int id, Dialog dialog) {
switch (id) {
case DIALOG_LOOKUP:
dialog.setCancelable(true);
dialog.setTitle(R.string.dialogLookup_title);
((ProgressDialog)dialog).setMessage(getResources().getString(R.string.dialogLookup_message));
dialog.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
Toast.makeText(MyActivity.this, "canceled", Toast.LENGTH_SHORT).show();
}
});
break;
}
}
El problema es que no es en realidad estableciendo el título y está poniendo en algunos doble extraña caja.
Me está dando a este:
pero yo estoy esperando algo más parecido a esto:
¿Alguna idea?
Solución
Me acaba de intentar su muestra y parece cambiar de ProgressDialog.STYLE_SPINNER
a ProgressDialog.STYLE_HORIZONTAL
ha solucionado el problema raro de doble caja.
Y también muestra el título y el texto.
Editar:
Está pasando ProgressDialog.STYLE_SPINNER
en el constructor ProgressDialog
.
Desde el doc, el segundo argumento es un identificador de tema.
tendrá que crear un objeto ProgressDialog
y utilizar el setProgressStyle
a ProgressDialog.STYLE_SPINNER
case DIALOG_LOOKUP:
ProgressDialog pdlg = new ProgressDialog(this);
pdlg.setProgressStyle(ProgressDialog.STYLE_SPINNER);
return pdlg;