LitteM
- Forum-Beiträge: 141
18.06.2013, 23:01:10 via Website
18.06.2013 23:01:10 via Website
Hallo zusammen,
da showDialog ja nicht mehr aktuell ist habe ich mich an ProgressDialogFragment versucht. Da ich irgendwie keine passenden Beispiele per Google gefunden habe um meine "funktionierende" Version abzuchecken wollte ich mal nachfragen ob das okay ist was ich mir zusammen-gecodet habe.
In meiner MainActivity folgendes deklariert:
Eine Innere Klasse hinzugefügt:
Dialog in der onPreExecute erzeugen:
publishProgress in der doInBackground:
onProgressUpdate:
onPostExecute:
Ist das okay wie ich dieses Fragmentzeugs hier verwende?
Der Logcat schmeißt mir noch ne Info vom Choreographer: "Skipped xx frames! The application may be doing too much work on its main thread."
Falls das jedoch nicht weiter von belang sein sollte, auch gut. Falls doch liegt es wohl an meinem Code.
Zum Schluss noch eine Frage: Gibt es eine elegantere Lösung als Thread.sleep in der onPostExecute reinzutun damit der Dialog bei kleinen Datein auch so lange offen bleibt damit man was "erkennt" ?
Danke schonmal für Meinungen
da showDialog ja nicht mehr aktuell ist habe ich mich an ProgressDialogFragment versucht. Da ich irgendwie keine passenden Beispiele per Google gefunden habe um meine "funktionierende" Version abzuchecken wollte ich mal nachfragen ob das okay ist was ich mir zusammen-gecodet habe.
In meiner MainActivity folgendes deklariert:
1ProgressDialogFragment test;
Eine Innere Klasse hinzugefügt:
1class ProgressDialogFragment extends DialogFragment{
2
3 ProgressDialog dialog;
4
5 @Override
6 public Dialog onCreateDialog(Bundle savedInstanceState) {
7 dialog = new ProgressDialog(getActivity());
8 dialog.setMessage("Downloading file. Please wait...");
9 dialog.setIndeterminate(false);
10 dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
11 dialog.setMax(100);
12 dialog.setCancelable(true);
13 return dialog;
14 }
15
16 public void setProgress(int value) {
17 dialog.setProgress(value);
18 }
19}
2
3 ProgressDialog dialog;
4
5 @Override
6 public Dialog onCreateDialog(Bundle savedInstanceState) {
7 dialog = new ProgressDialog(getActivity());
8 dialog.setMessage("Downloading file. Please wait...");
9 dialog.setIndeterminate(false);
10 dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
11 dialog.setMax(100);
12 dialog.setCancelable(true);
13 return dialog;
14 }
15
16 public void setProgress(int value) {
17 dialog.setProgress(value);
18 }
19}
Dialog in der onPreExecute erzeugen:
1test = new ProgressDialogFragment();
2 test.show(getFragmentManager(), "MyProgressDialog");
2 test.show(getFragmentManager(), "MyProgressDialog");
publishProgress in der doInBackground:
1publishProgress(""+(int)((sum*100)/length));
onProgressUpdate:
1test.setProgress(Integer.parseInt(progress[0]));
onPostExecute:
1test.dismiss();
Ist das okay wie ich dieses Fragmentzeugs hier verwende?
Der Logcat schmeißt mir noch ne Info vom Choreographer: "Skipped xx frames! The application may be doing too much work on its main thread."
Falls das jedoch nicht weiter von belang sein sollte, auch gut. Falls doch liegt es wohl an meinem Code.
Zum Schluss noch eine Frage: Gibt es eine elegantere Lösung als Thread.sleep in der onPostExecute reinzutun damit der Dialog bei kleinen Datein auch so lange offen bleibt damit man was "erkennt" ?
Danke schonmal für Meinungen
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.