Frage

Wie kann ich programmatisch in einer Android-Anwendung eine Sanduhr angezeigt werden?

War es hilfreich?

Lösung

Sie können mit einem ProgressDialog :

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

Der obige Code wird im folgenden Dialog auf Ihren Activity zeigen:

alt text

Alternativ (oder zusätzlich) können Sie in der Titelleiste Ihres Activity eine Fortschrittsanzeige angezeigt werden soll.

alt text

Sie Notwendigkeit, dies als Feature zu beantragen in der Nähe der Spitze der onCreate() Methode Ihrer Activity mit dem folgenden Code:

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

schalten Sie es wie folgt aus:

setProgressBarIndeterminateVisibility(true);

und deaktivieren wie folgt aus:

setProgressBarIndeterminateVisibility(false);

Andere Tipps

Hier ist ein einfaches Beispiel, es zu tun AsyncTask mit:

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();
            }           
        }
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top