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

时间:2011-08-12 08:25:59

标签: android

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

myDialog = new ProgressDialog(BaseScreen.this);
myDialog.setMessage("Loading...");
myDialog.setCancelable(false);
myDialog.show();

我想在此onClickListener上设置一个ProgressDialog的按钮。 我试过这段代码:

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

但它不起作用。我也试过其他类似的听众,但仍然没有成功。 我该如何解决这个问题?

3 个答案:

答案 0 :(得分:142)

您正在使用的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();

答案 1 :(得分:17)

请务必在致电myDialog.setButton之前致电myDialog.show();  如果您只需要在按钮单击时关闭对话框,也可以使用myDialog.setButton("Cancel", (DialogInterface.OnClickListener) null);

答案 2 :(得分:2)

检查这个

private void createCancelProgressDialog(String title, String message, String buttonText)
{
    cancelDialog = new ProgressDialog(this);
    cancelDialog.setTitle(title);
    cancelDialog.setMessage(message);
    cancelDialog.setButton(buttonText, new DialogInterface.OnClickListener() 
    {
        public void onClick(DialogInterface dialog, int which) 
        {
            // Use either finish() or return() to either close the activity or just the dialog
            return;
        }
    });
    cancelDialog.show();
}

然后只需使用活动中其他地方的简单调用方法

createCancelProgressDialog("Loading", "Please wait while activity is loading", "Cancel");