studio programacion porcentaje para móviles mejor indicador funciona desarrollo curso batería bateria aplicaciones activador android android-spinner

android - programacion - ¿La mejor manera de mostrar un indicador de carga/progreso?



manual de programacion android pdf (5)

Así es como hice esto para que solo 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(); }

¿Cuál es la mejor manera de mostrar un spinner de carga mientras la aplicación espera una respuesta del servidor?

¿Se puede hacer esto programáticamente? ¿Para que no tenga que agregar el spinner de carga en el archivo xml?


En realidad, si está esperando la respuesta de un servidor, debe hacerlo programáticamente. Puede crear un cuadro de diálogo de progreso y descartarlo, pero de nuevo eso no es "el camino de Android".

Actualmente, el método recomendado es usar 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; } }

Luego, en su actividad, configure su administrador de Fragmentos y muestre el diálogo una vez que se haya iniciado la espera del servidor:

FragmentManager fm = getSupportFragmentManager(); MySpinnerDialog myInstance = new MySpinnerDialog(); } myInstance.show(fm, "some_tag");

Una vez que su servidor haya respondido completo lo descartará:

myInstance.dismiss()

Recuerde que el progresodialog es un spinner o una barra de progreso dependiendo de los atributos, lea más en la guía api


ProgressDialog se ha quedado obsoleto desde API Nivel 26 developer.android.com/reference/android/app/ProgressDialog.html

Incluyo una ProgressBar en mi diseño

<ProgressBar android:layout_weight="1" android:id="@+id/progressBar_cyclic" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:minHeight="40dp" android:minWidth="40dp" />

y cambie su visibilidad a .GONE | .VISIBLE según el caso de uso.

progressBar_cyclic.visibility = View.VISIBLE



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)