I would like to set theme of progressDialog. To create it, I use this code:
progressDialog = ProgressDialog.show(this, "Please Wait", "Loading dictionary file....", true, false);
I can't just write
progressDialog = new ProgressDialog(...);
progressDialog.(do_sth_with_dialog);
progressDialog.show(...)
because the show() method is static and I get compiler warning. Is there any way to use available constants like
progressDialog.THEME_HOLO_DARK
to set the dialog theme?
I would also like to change the Dialog background and make the corners round (I don't want to change anything with the progressBar that is inside progressDialog. There is many tutorials here, but they usually describe how to create new class that extends progressDialog class.
Is there easier way to set THEME and BACKGROUND color of progressDialog?
Why I can access constants like progressDialog.THEME_HOLO_DARK if I cant use them?
ProgressDialog is a modal dialog, which prevents the user from interacting with the app. Instead of using this class, you should use a progress indicator like ProgressBar , which can be embedded in your app's UI. Alternatively, you can use a notification to inform the user of the task's progress.
ProgressDialog 's look can be replicated by placing a ProgressBar into an AlertDialog . You can still use it, but Android does not want you to use it, that is why it is deprecated.
ProgressDialog dialog = new ProgressDialog(MainActivity. this); dialog. setMessage("Your message.."); dialog. show();
7. getProgess() – This returns current progress of the progress dialog in numeric.
ProgressDialog.show()
are static methods, so you don't get a class instance of ProgressDialog
that you can set properties on.
To get a ProgressDialog
instance:
// create a ProgressDialog instance, with a specified theme:
ProgressDialog dialog = new ProgressDialog(mContext, ProgressDialog.THEME_HOLO_DARK);
// set indeterminate style
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
// set title and message
dialog.setTitle("Please wait");
dialog.setMessage("Loading dictionary file...");
// and show it
dialog.show();
EDIT 8/2016: Regarding the comments about deprecated themes, you may also use styles.xml and inherit from a base theme, e.g.:
<style name="MyProgressDialog" parent="Theme.AppCompat.Dialog">
</style>
the details on how to do this are already covered extensively elsewhere, start with https://developer.android.com/guide/topics/ui/themes.html.
Using themes and styles.xml is (in my opinion) a much cleaner and easier to maintain solution than hard-coding a theme when instantiating the ProgressDialog, i.e. set it once and forget it.
Then you can just do
new ProgressDialog(mContext);
and let your global theme/style provide the styling.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With