Pergunta

Como posso exibir programaticamente uma ampulheta em um aplicativo Android?

Foi útil?

Solução

Você pode usar um ProgressDialog:

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

O código acima mostrará a seguinte caixa de diálogo em cima de seu Activity:

alt text

Alternativamente (ou adicionalmente), você pode exibir um indicador de progresso na barra de título do seu Activity.

alt text

Você precisa solicitar isso como um recurso perto do topo do onCreate() método do seu Activity Usando o seguinte código:

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

Em seguida, ligue assim:

setProgressBarIndeterminateVisibility(true);

e desligá -lo assim:

setProgressBarIndeterminateVisibility(false);

Outras dicas

Aqui está um exemplo simples de fazê -lo 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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top