¿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?
- ¿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?
- ¿Cómo prevenir los incendios onNavigationItemSelected cuando se inicia la actividad?
- Android: El elemento giratorio en el clic no funciona si ya está seleccionado
- Cómo hacer un Spinner de Android con el texto inicial "Seleccionar uno"
- El NetworkImageView de Volley no aparece en Spinner
- ¿Cómo establecer el valor predeterminado en el menú desplegable de hilandero en Android?
- ActionBar onNavigationItemSelected no se llama cuando el elemento seleccionado permanece igual
- Cómo cambiar el estilo de spinner personalizado en android
- OnItemClickListener de spinner
- Spinner no envuelve texto - ¿esto es un error de Android?
- Implementar múltiples oyentes de eventos en el mismo fragmento - Android
- Cree un progressDialog sólo con el spinner (en el medio)
- ¿Cómo configurar el elemento activo en la barra desplegable Barra de acciones?
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(); }