Android ProgressDialog with setContentView
-
08-10-2019 - |
Question
I've read a hell of a lot about this, and can't see anyone who's done or tried it before.
So I've got an object that extends ImageView, then within this I call a progress dialog and set the progress dialogs's content to the imageview (i.e. attempting to draw the progress dialog in the imageview..view.)
loadingProgressDialog.setContentView(this); //this is: LoaderImageView extends ImageView
loadingProgressDialog.setIndeterminate(true);
loadingProgressDialog.show();
And I get the error: requestFeature() must be called before adding content
Now I've seen this error before on loads of posts and yes the answer seems obvious. I've tried to set all the features:
loadingProgressDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
loadingProgressDialog.requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
loadingProgressDialog.getWindow().requestFeature(Window.FEATURE_PROGRESS);
loadingProgressDialog.getWindow().requestFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
But first I don't understand why I need this? And second none of them work anyway!
So the question is can I set the ProgressDialog contentView to an ImageView? If so what have I gotten wrong?
Solution 3
Got it.
The clue was in the class names, don't use ProgressDialog ( http://developer.android.com/reference/android/app/ProgressDialog.html ) when you don't need a dialog!
I changed my implementation to use: ProgressBar ( http://developer.android.com/reference/android/widget/ProgressBar.html ) and it works great.
Cheers for the ear anyway!
This is why I was looking for it for:
http://www.anddev.org/novice-tutorials-f8/imageview-with-loading-spinner-t49439.html
Tutorial showing how you can have a Spinner whilst an image is loading. Enjoy
OTHER TIPS
I made it; in fact, it's very easy; using
loadingProgressDialog.setContentView(this)
after
loadingProgressDialog.show()
The following lines of code are unnecessary:
loadingProgressDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
loadingProgressDialog.requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
loadingProgressDialog.getWindow().requestFeature(Window.FEATURE_PROGRESS);
loadingProgressDialog.getWindow().requestFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
that's to say:
loadingProgressDialog.setIndeterminate(true);
loadingProgressDialog.show();
loadingProgressDialog.setContentView(this); //this is: LoaderImageView extends ImageView
that is enough.
I hope this can help other people looking for answer about this question.
If you read the progressDialog developer doc it says "A dialog showing a progress indicator and an optional text message or view. Only a text message or a view can be used at the same time."
It looks like you are trying to do both. Possibly the cause of your issue.