Frage
Wie kann ich programmatisch in einer Android-Anwendung eine Sanduhr angezeigt werden?
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:
Alternativ (oder zusätzlich) können Sie in der Titelleiste Ihres Activity
eine Fortschrittsanzeige angezeigt werden soll.
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