如何将主题设置为ProgressDialog?
我想设置progressDialog的主题。要创建它,我使用以下代码:
progressDialog = ProgressDialog.show(this, "Please Wait", "Loading dictionary file....", true, false);
我不能只是写
progressDialog = new ProgressDialog(...);progressDialog.(do_sth_with_dialog);
progressDialog.show(...)
因为show()方法是静态的,并且我收到编译器警告。有没有办法使用可用的常量,例如
progressDialog.THEME_HOLO_DARK
设置对话框主题?
我还想更改Dialog的背景并弄个圆角(我不想使用progressDialog内的progressBar进行任何更改。这里有许多教程,但是它们通常描述了如何创建扩展progressDialog类的新类。
。
如果我不能使用它们,为什么可以访问诸如progressDialog.THEME_HOLO_DARK之类的常量?
回答:
ProgressDialog.show()
是静态方法,因此不会获得ProgressDialog
可以设置属性的类实例。
获取ProgressDialog
实例:
// 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();
关于不推荐使用的主题的注释,您还可以使用styles.xml并从基本主题继承,例如:
<style name="MyProgressDialog" parent="Theme.AppCompat.Dialog"></style>
有关如何执行此操作的详细信息已在https://developer.android.com/guide/topics/ui/themes.html开始。
(在我看来)使用主题和styles.xml比在实例化ProgressDialog时对主题进行硬编码(即一次性设置并忘记它)更清洁,更容易维护解决方案。
那你就可以做
new ProgressDialog(mContext);
并让您的全局主题/样式提供样式。
以上是 如何将主题设置为ProgressDialog? 的全部内容, 来源链接: utcz.com/qa/397533.html