Reloj de arena androide
¿Cómo puedo mostrar programáticamente un reloj de arena en una aplicación de Android?
Puede utilizar un ProgressDialog
:
ProgressDialog dialog = new ProgressDialog(this); dialog.setMessage("Thinking..."); dialog.setIndeterminate(true); dialog.setCancelable(false); dialog.show();
El código anterior mostrará el siguiente diálogo en la parte superior de su Activity
:
Alternativamente (o adicionalmente) puede mostrar un indicador de Progreso en la barra de título de su Activity
.
onCreate()
solicitar esto como una característica cerca de la parte superior del método onCreate()
de su Activity
mediante el siguiente código:
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
A continuación, enciéndalo de esta manera:
setProgressBarIndeterminateVisibility(true);
Y apagarlo así:
setProgressBarIndeterminateVisibility(false);
Aquí está un ejemplo simple de hacerlo usando AsyncTask:
public class MyActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { ... new MyLoadTask(this).execute(); //If you have parameters you can pass them inside execute method } private class MyLoadTask extends AsyncTask <Object,Void,String>{ private ProgressDialog dialog; public MyLoadTask(MyActivity act) { dialog = new ProgressDialog(act); } protected void onPreExecute() { dialog.setMessage("Loading..."); dialog.show(); } @Override protected String doInBackground(Object... params) { //Perform your task here.... //Return value ... you can return any Object, I used String in this case try { Thread.sleep(6000); } catch (InterruptedException e) { e.printStackTrace(); } return(new String("test")); } @Override protected void onPostExecute(String str) { //Update your UI here.... Get value from doInBackground .... if (dialog.isShowing()) { dialog.dismiss(); } } }