Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';这是“什么?”;“违约”;android中(进度)对话框的主题?_Android_Android Styles - Fatal编程技术网

什么';这是“什么?”;“违约”;android中(进度)对话框的主题?

什么';这是“什么?”;“违约”;android中(进度)对话框的主题?,android,android-styles,Android,Android Styles,我可以创建这样的ProgressDialog: ProgressDialog progressDialog = new ProgressDialog(this); progressDialog.setMessage("Hi"); progressDialog.setIndeterminate(true); progressDialog.show(); 看起来不错,但我想更改使用上述代码创建的ProgressDialog的几个方面-,并且只更改几个方面其他所有内容应保持不变 假设我想更改文本颜色

我可以创建这样的ProgressDialog:

ProgressDialog progressDialog = new ProgressDialog(this);
progressDialog.setMessage("Hi");
progressDialog.setIndeterminate(true);
progressDialog.show();
看起来不错,但我想更改使用上述代码创建的ProgressDialog的几个方面-,并且只更改几个方面其他所有内容应保持不变

假设我想更改文本颜色并禁用背景调暗。我知道我可以通过编程实现这一点,但我希望使用自定义样式。然后,我可以应用该样式:

ProgressDialog progressDialog = new ProgressDialog(this, R.style.MyProgressDialogStyle);
...
所以问题是,我应该使用什么作为父级,以使设备上使用的“默认”样式保持不变?显然,我希望这个解决方案是可移植的,这样它就可以在所有设备上工作

<style name="MyProgressDialogStyle" parent=?????>
    <item name="android:backgroundDimEnabled">false</item>
    <item name="android:textColor">@color/my_color</item>
</style>

假的
@颜色/我的颜色

到目前为止,我看到的所有答案似乎都使用了不同的主题。这是否意味着没有真正的方法来实现我所寻找的?在这种情况下,使用样式是否是错误的方法?

您正确地希望使用无效的
Theme.AppCompat.Light.Dialog.Alert

:之前,未应用样式:之后,使用Theme.AppCompat.Light.Dialog.Alert:这不是很具体。你怎么知道它不起作用了?尝试删除android:prefix。是的,很抱歉,我之前按了“enter”,它在我能够提供之前/之后的图像之前插入了我的评论。删除android:prefix会导致aapt错误:找不到与给定名称匹配的资源:attr“backgroundDimEnabled”。textColor也一样。我不确定什么不起作用?这种风格绝对适用。如果这不是您想要的textColor,请尝试使用
textColorPrimary
textColorSecondary
等。参考这本书,它很好地展示了你可以用什么作为钥匙。