如何在进度对话框中设置取消按钮?

Gau*_*pta 59 android

我想在我的设置中设置取消按钮ProgressDialog.以下是我的代码:

myDialog = new ProgressDialog(BaseScreen.this);
myDialog.setMessage("Loading...");
myDialog.setCancelable(false);
myDialog.show();
Run Code Online (Sandbox Code Playgroud)

我想设置一个带有onClickListener此按钮的按钮ProgressDialog.我试过这段代码:

myDialog.setButton("Cancel", new OnClickListener() {        
    @Override
    public void onClick(DialogInterface dialog, int which) {
        // TODO Auto-generated method stub          
        myDialog.dismiss();
    }
});
Run Code Online (Sandbox Code Playgroud)

但它没有用.我也试过其他类似的听众,但仍然没有成功.我怎么解决这个问题?

Fel*_*lix 147

setButton您正在使用的方法已被弃用(尽管它应该仍然有效).此外,您可能希望显示对话框之前添加按钮.尝试:

myDialog = new ProgressDialog(BaseScreen.this);
myDialog.setMessage("Loading...");
myDialog.setCancelable(false);
myDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        dialog.dismiss();
    }
});
myDialog.show();
Run Code Online (Sandbox Code Playgroud)

  • 仅供参考,`onClick`监听器中不需要`dialog.dismiss()`,因为它会自动关闭对话框.实际上,此方法不允许您阻止对话框被解除. (6认同)

ern*_*azm 17

确保在致电myDialog.setButton前打电话如果你只需要点击按钮关闭对话框就myDialog.show();
可以使用myDialog.setButton("Cancel", (DialogInterface.OnClickListener) null);.