简体   繁体   中英

Android make a progressDialog ProgressBar Invisible

This is my ProgressDialog

progressBar = new ProgressDialog(Wallpapers.this);
progressBar.setCancelable(false);
progressBar.setMessage("Downloading " + downloadedFile + ".png");
progressBar.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressBar.setProgress(0);
progressBar.setMax(100);
progressBar.setButton(DialogInterface.BUTTON_NEGATIVE, "No", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        dialog.dismiss();
    }
});

progressBar.setButton(DialogInterface.BUTTON_POSITIVE, "Yes", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        dialog.dismiss();
    }
});
progressBar.show();

Given that i can force the Buttons to become VISIBLE INVISIBLE GONE with the following:

progressBar.getButton(ProgressDialog.BUTTON_POSITIVE).setVisibility(View.INVISIBLE);

I had hoped to be able to do the same with the ProgressBar, this would allow more room for text to describe which button to press after the task is completed.

But the following is my best guess and its creating a NullPointer

progressBar.getButton(ProgressDialog.STYLE_HORIZONTAL).setVisibility(View.INVISIBLE);

Please note I am not looking to close the Dialog, only force the ProgressBar to be Invisible.

If it cannot be done then so be it, but any help would be great

ProgressDialog.STYLE_HORIZONTAL and ProgressDialog.STYLE_SPINNER are not Buttons, nor are they identifiers for Buttons in the AlertDialog class.

If you really want to stick with a ProgressDialog , you could hack your way around it by getting a View within the dialog (eg a Button or the View that has focus via getCurrentFocus() ), then get the root View of the Dialog and traverse it's children until you find a ProgressBar . I wouldn't recommend this.

A better alternative would be to create your own layout that includes a ProgressDialog , and set that as an AlertDialog's View with setView() . This way you can define your own ID for the bar and retrieve it via the Dialog's findViewById() method.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM