在Android中的进度对话框中更改辅助进度文本

时间:2015-05-29 07:29:43

标签: android

现在,进度对话框中的默认辅助进度文本如下所示:x / y其中y可由setMax更改。但是,如果我想在y所在的位置添加一些文本,该怎么办?例如,在进度对话框中,它是:X / Y门票

我是否需要使用自定义进度对话框?如果是,我怎样才能使它看起来像默认的进度对话框,尽管在辅助进度部分旁边添加了额外的文本。

1 个答案:

答案 0 :(得分:0)

我做了一些测试,我觉得实现这一目标的最佳方法是进行自定义Dialog

public class MyProgressDialog extends Dialog {

public static MyProgressDialog show(Context context, CharSequence title,
        CharSequence message) {
    return show(context, title, message, false);
}

public static MyProgressDialog show(Context context, CharSequence title,
        CharSequence message, boolean indeterminate) {
    return show(context, title, message, indeterminate, false, null);
}

public static MyProgressDialog show(Context context, CharSequence title,
        CharSequence message, boolean indeterminate, boolean cancelable) {
    return show(context, title, message, indeterminate, cancelable, null);
}

public static MyProgressDialog show(Context context, CharSequence title,
        CharSequence message, boolean indeterminate,
        boolean cancelable, OnCancelListener cancelListener) {
    MyProgressDialog dialog = new MyProgressDialog(context);
    dialog.setTitle(title);
    dialog.setCancelable(cancelable);
    dialog.setOnCancelListener(cancelListener);
    /* The next line will add the ProgressBar to the dialog. */
    dialog.addContentView(new ProgressBar(context), new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    dialog.show();

    return dialog;
}

public MyProgressDialog(Context context) {
    super(context, R.style.NewDialog);
}
}

所有静态方法都来自这个link,没什么奇怪的,但是魔法发生在构造函数中。检查我作为参数传递样式。那种风​​格如下:

   <?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="NewDialog" parent="@android:Theme.Dialog">
    <item name="android:windowFrame">@null</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowTitleStyle">@null</item>
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
    <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
    <item name="android:backgroundDimEnabled">false</item>
    <item name="android:background">@android:color/transparent</item>
</style>
</resources>

结果是在屏幕中央旋转ProgressBar。没有背景Dim且没有DialogBox