¿La mejor manera de mostrar un indicador de carga / avance?
¿Cuál es la mejor manera de mostrar un spinner de carga mientras la aplicación está esperando una respuesta del servidor?
¿Puede hacerse esto mediante programación? ¿Para que no tenga que agregar el spinner de carga en el archivo xml?
- Etiqueta flotante Spinner?
- Populating Android Spinner con la lista de objetos
- ¿Por qué mi hilandero es tan horrible?
- ¿Cómo coloco el hilandero debajo del diseño del hilandero cuando se hace clic y muestra el elemento del hilandero en piruleta y arriba?
- Valores de conjunto de spinner de Android
- Spinner.setSelection no activa OnItemSelectedListener correctamente
- Android spinner prompt
- ¿Cómo puedo cambiar el color de fondo de una ventana giratoria?
- Android Spinner - ¿cómo hacer el tamaño del elemento seleccionado actualmente?
- Cómo configurar el elemento Spinner sin que onItemSelected se llame
- Leer 3 elementos seleccionados al mismo tiempo
- Spinner se mueve hacia abajo en el diseño después de seleccionar un elemento
- El primer elemento de Spinner no debe aparecer en la lista desplegable
ProgressDialog progress = new ProgressDialog(this); progress.setTitle("Loading"); progress.setMessage("Wait while loading..."); progress.setCancelable(false); // disable dismiss by tapping outside of the dialog progress.show(); // To dismiss the dialog progress.dismiss();
O
ProgressDialog.show(this, "Loading", "Wait while loading...");
Leer más aquí.
Por cierto, Spinner tiene un significado diferente en Android. (Es como el menú desplegable de selección en HTML)
Utilice ProgressDialog
ProgressDialog.show(Context context, CharSequence title, CharSequence message);
Sin embargo, esto se considera como un patrón anti hoy (2013): http://www.youtube.com/watch?v=pEGWcMTxs3I
En realidad, si usted está esperando la respuesta de un servidor que debe hacerse mediante programación. Puede crear un diálogo de progreso y despedirlo, pero de nuevo eso no es "la forma android".
Actualmente el método recomendado es utilizar un DialogFragment :
public class MySpinnerDialog extends DialogFragment { public MySpinnerDialog() { // use empty constructors. If something is needed use onCreate's } @Override public Dialog onCreateDialog(final Bundle savedInstanceState) { _dialog = new ProgressDialog(getActivity()); this.setStyle(STYLE_NO_TITLE, getTheme()); // You can use styles or inflate a view _dialog.setMessage("Spinning.."); // set your messages if not inflated from XML _dialog.setCancelable(false); return _dialog; } }
A continuación, en su actividad, configure su gestor de fragmentos y muestre el cuadro de diálogo una vez que haya esperado el inicio del servidor:
FragmentManager fm = getSupportFragmentManager(); MySpinnerDialog myInstance = new MySpinnerDialog(); } myInstance.show(fm, "some_tag");
Una vez que su servidor haya respondido completo, lo rechazará:
myInstance.dismiss()
Recuerde que el progressdialog es un spinner o una barra de progreso dependiendo de los atributos, lea más en la guía de api
Así es como lo hice para que sólo se pueda abrir un diálogo de progreso a la vez. Basado en la respuesta de Suraj Bajaj
private ProgressDialog progress; public void showLoadingDialog() { if (progress == null) { progress = new ProgressDialog(this); progress.setTitle(getString(R.string.loading_title)); progress.setMessage(getString(R.string.loading_message)); } progress.show(); } public void dismissLoadingDialog() { if (progress != null && progress.isShowing()) { progress.dismiss(); } }
También tuve que usar
protected void onResume() { dismissLoadingDialog(); super.onResume(); }