Pregunta

¿Cómo puedo mostrar mediante programación un reloj de arena en una aplicación de Android?

¿Fue útil?

Solución

Usted puede utilizar un ProgressDialog:

ProgressDialog dialog = new ProgressDialog(this);
dialog.setMessage("Thinking...");
dialog.setIndeterminate(true);
dialog.setCancelable(false);
dialog.show();

El código anterior se mostrará el siguiente cuadro de diálogo en la parte superior de su Activity:

alt text

Como alternativa (o además) puede mostrar un indicador de Progreso en la barra de título de su Activity.

alt text

Usted la necesidad de solicitar esta función cerca de la parte superior de la onCreate() método de su Activity usar el siguiente código:

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

A continuación, enciéndalo como este:

setProgressBarIndeterminateVisibility(true);

y lo apague como este:

setProgressBarIndeterminateVisibility(false);

Otros consejos

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();
            }           
        }
    }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top