当前位置: 首页 > 面试题库 >

如何将主题设置为ProgressDialog?

毋胜涝
2023-03-14
问题内容

我想设置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的主题和背景颜色?
如果我不能使用它们,为什么可以访问诸如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();

编辑8/2016: 关于不推荐使用的主题的注释,您还可以使用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);

并让您的全局主题/样式提供样式。



 类似资料:
  • 如何将样式仅设置为之一(而不是自定义)?我是否必须创建2个和一个自定义ImageView,因为我必须传递样式抛出它们的?

  • /** 设置主题色(默认主题色是:#0684ea) @param themeColor 十六机制颜色 */ [Ntalker ntalker_themeColor:@"#0684ea"];

  • 我正在使用安装了Anaconda的jupyter笔记本(我在Mac上)。几天前,我想把主题改成黑色背景,我按照这里的说明做了。也就是说,我已经下载了主题并将其放置在。它工作得很好。 我喜欢这个主题,但是我想回到默认的主题(这个主题不显示主工具栏,等等)。我试图删除从其文件夹,我重置我的终端,但没有任何变化!我猜朱庇特把主题的副本放在某个地方,我应该删除,但我找不到。 我也尝试卸载jupyter和重

  • 问题内容: 我尝试过这种方式,但是它没有改变吗? 问题答案: 最好使用.png文件;.ico是Windows特定的。最好不要使用文件,而是使用类资源(可以包装在应用程序的jar中)。 尽管您甚至可能考虑将setIconImages用于多种尺寸的图标。

  • 我使用的是Spring Kafka 2.2.7,我已经将配置为,并使用消费消息,一切都按预期运行。 我想添加一个来记录所有消耗的消息,但发现很难配置它。留档指出可以在容器上设置RecordInterceptor,但我不确定如何获取容器的实例。 从版本2.2.7开始,您可以向侦听器容器添加RecordInterceptor;它将在调用允许检查或修改记录的侦听器之前被调用。 我查阅了Spring文档,

  • 这听起来很无聊,但我想知道我是否可以让主键在Laravel中作为外键工作,我对Laravel是新手。 因此,我有两个迁移“User”和“Student”,如下所示:User: 学生: 所以,我所想要的是,学生(uniqueId)中的主键也可以用作引用User表中的uniqueId列的外键。 提前谢谢。