Jak programowo wyświetlić klepsydrę w aplikacji na Androida?klepsydra z Androidem
21
A
Odpowiedz
45
Można użyć ProgressDialog
:
ProgressDialog dialog = new ProgressDialog(this);
dialog.setMessage("Thinking...");
dialog.setIndeterminate(true);
dialog.setCancelable(false);
dialog.show();
Powyższy kod pojawi się następujące okno na górze Activity
:
Alternatywnie (lub dodatkowo) można wyświetlić postęp wskaźnik na pasku tytułu twojego Activity
.
You need to request this as a feature pobliżu szczytu metody onCreate()
swojej Activity
stosując następujący kod:
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
następnie włącz go tak:
setProgressBarIndeterminateVisibility(true);
i włącz go w następujący sposób:
setProgressBarIndeterminateVisibility(false);
3
Oto prosty przykład to zrobić za pomocą 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();
}
}
}
Powiązane problemy
- 1. Dlaczego klepsydra (WaitCursor) przestałaby się obracać?
- 2. Przycisk rozwijania z Androidem
- 3. Kadrowanie aparatu z Androidem
- 4. Animacja migotania z Androidem
- 5. Obraz kwadratowy z Androidem
- 6. Przyciski bezgraniczne z Androidem
- 7. Dotykowe wydarzenie z Androidem
- 8. Głowice bezel z Androidem
- 9. Używanie awt z Androidem
- 10. Menu wyskakujące z Androidem
- 11. Plik animacji z Androidem
- 12. android.os.NetworkOnMainThreadException z Androidem 4.2
- 13. DataBinding z Androidem Dialog
- 14. Używanie procesora z Androidem
- 15. Wyłączanie urządzeń z Androidem
- 16. Rozpoczęcie pracy z Androidem
- 17. Urządzenie wirtualne z Androidem
- 18. Widok kalendarza z Androidem
- 19. Programowanie obiektowe z Androidem
- 20. Używanie ProGuard z Androidem
- 21. Układanie tablelayoutów z Androidem
- 22. Problem z SSL z Androidem
- 23. keyevent telefon z Androidem zamknięty
- 24. Zestaw głośnomówiący z Androidem programowo
- 25. Informacje o urządzeniu z Androidem
- 26. md5 z Androidem i PHP
- 27. Dźwięk z Androidem: zmień nachylenie
- 28. keytool z Androidem Facebook SDK
- 29. NDK z Androidem ładnie drukuje
- 30. Ekran z podwójnym ekranem Androidem
Problemem jest to, że po wyświetleniu okna dialogowego Pobiegłem stosunkowo długiego leczenia, które uniemożliwiają wyświetlanie w oknie dialogowym, które pojawia się na końcu leczenie, kiedy już nie potrzebuję! – Arutha
Zobacz "AsyncTask". Wyświetlasz i ukrywasz 'ProgressDialog' w' onPreExecute() 'i' onPostExecute' i wykonujesz swoją pracę na 'doInBackground'. http://android-developers.blogspot.com/2009/05/podstawowym-threading.html –
Może warto też przeczytać przewodnik programisty Androida "Projektowanie pod kątem reagowania" http://developer.android.com/guide/practices/ design/responsiveness.html –