我在 asynctask 中动态创建了 progressdialog。我为我的应用程序使用自定义样式。当我这样做时,我的进度对话框样式更改为白色,我需要我的默认样式为黑色和白色文本。
我的java文件:
class LoginTask extends AsyncTask<Void, Void, Void> {
private final ProgressDialog dialog = new ProgressDialog(Login.this);
@Override
protected void onPreExecute() {
this.dialog.setMessage("Logging in...");
this.dialog.show();
}
// my prog
@Override
protected void onPostExecute(Void result) {
if (this.dialog.isShowing()) {
this.dialog.dismiss();
}}
我的 style.xml :
<style name="AppBaseTheme" parent="android:Theme.Light">
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:windowBackground">@drawable/blue</item>
<item name="android:textColor">@color/white</item>
<item name="android:editTextColor">@color/white</item>
<item name="android:buttonStyle">@android:style/Widget.Holo.Button</item>
<item name="android:dropDownSpinnerStyle">@android:style/Widget.Holo.Spinner</item>
<item name="android:textAppearanceButton">@android:style/TextAppearance.Widget.Button</item>
<item name="android:progressBarStyle">@style/ProgressBar</item>
</style>
<style name="ProgressBar" parent="@style/android:Theme.Holo">
<item name="android:textColor">@color/red</item>
<item name="android:background">@color/green</item>
</style>
最佳答案
更改以下行以通过您的构造函数传递样式
...
private final ProgressDialog dialog = new ProgressDialog(Login.this);
对于这个...
private final ProgressDialog dialog = new ProgressDialog(Login.this, R.style.ProgressBar);
更新:
我只是改变了 style
如下......以及它的工作方式。
<style name="ProgressBar" parent="@style/android:Theme.Holo">
<item name="android:textColor">#FFFFFF</item>
<item name="android:background">#000000</item>
</style>
关于android - android中动态创建的自定义进度对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22217673/