动态创建Android自定义进度对话框

7

我已经动态地在asynctask中创建了ProgressDialog。我使用的是自定义样式来适配我的应用程序。但是当我这样做时,我的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>


1
然后为您的“进度对话框”创建另一个“主题”,并设置为“ProgressDialog pd = new ProgressDialog(Activity.this, R.style.MyTheme);”。 - M D
为什么这行代码无法正常工作:<item name="android:progressBarStyle">@android:style/Widget.ProgressBar</item>。 - Yashwanth
1个回答

11

将下面的代码更改为通过构造函数传递 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>

我需要默认主题黑色背景和白色文本。使用以下代码行: <item name="android:progressBarStyle">@android:style/Widget.ProgressBar</item> - Yashwanth
现在,你得到了哪种颜色? - Hamid Shatu
是的,这种方法可以正常工作,但为什么我不能使用这种方式 <item name="android:progressBarStyle">@android:style/Widget.Holo.ProgressBar</item>? - Yashwanth
<item name="android:dropDownSpinnerStyle">@android:style/Widget.Holo.Spinner</item> 这个可以工作,但不包括ProgressBarStyle。 - Yashwanth
@HamidShatu 帮帮我,兄弟,我从昨天开始就卡住了。 - Yashwanth
显示剩余7条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接