Estoy tratando de crear un ProgressDialog para una aplicación de Android (solo una simple que muestra al usuario que algo está sucediendo, sin botones ni nada) pero no puedo hacerlo bien. He pasado por foros y tutoriales, así como el código de muestra que viene con el SDK, pero fue en vano.Android: ProgressDialog no muestra
Esto es lo que tengo:
btnSubmit.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
(...)
ProgressDialog pd = new ProgressDialog(MyApp.this);
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pd.setMessage("Working...");
pd.setIndeterminate(true);
pd.setCancelable(false);
// now fetch the results
(...long time calculations here...)
// remove progress dialog
pd.dismiss();
También he intentado añadir pd.show();
y en mal estado un poco con el parámetro en new ProgressDialog
que resulta en nada en absoluto (excepto los errores que el parámetro elegido no funcionará), lo que significa que el ProgressDialog nunca aparecerá. La aplicación sigue ejecutándose como si nunca hubiera agregado el diálogo.
No sé si estoy creando el diálogo en el lugar correcto, lo moví un poco, pero eso tampoco me ayudó. Tal vez estoy en el contexto equivocado? El código anterior está dentro de private ViewGroup _createInputForm()
en MyApp
.
Cualquier sugerencia se aprecia,
He reconstruido mi aplicación para hacer esto :) Los tutoriales que leí sonaron como si esto fuera posible sin otro hilo, pero nunca dejas de aprender. No he terminado por completo: ahora el ProgressDialog no muestra dónde debería (¡al menos se muestra!), Sino que simplemente "parpadea" poco antes de que aparezcan los resultados, pero ahora creo que puedo hacer el resto por mi cuenta;) ¡Muchas gracias por tu ayuda! – Select0r
Solo para completar esto, en caso de que alguien esté interesado: el "parpadeo" de ProgressDialog es algo que solo ocurre en el emulador, no ocurre en el dispositivo real. Parece que el emulador tarda más de un segundo antes de que la solicitud (onClick) se procese realmente y la aplicación se congele hasta que eso suceda. En el dispositivo, todo está bien. – Select0r
por qué no usamos pd = new ProgressDialog (this); pd.show() ;? – Emerald214