Android 当按下按钮时,ProgressDialog将被取消

Android 当按下按钮时,ProgressDialog将被取消,android,Android,我有一个“请等待”ProgressDialog,其中包含一个按钮,问题是当单击按钮时,对话框被取消(它消失),如何使对话框保持在屏幕上 // Please wait dialog private void showWaitDialog() { prgDialg = new ProgressDialog(context); prgDialg.setTitle("Working..."); prgDialg.setMessage("Please wait.");

我有一个“请等待”
ProgressDialog
,其中包含一个按钮,问题是当单击按钮时,对话框被取消(它消失),如何使对话框保持在屏幕上

    // Please wait dialog
private void showWaitDialog() {
    prgDialg = new ProgressDialog(context);
    prgDialg.setTitle("Working...");
    prgDialg.setMessage("Please wait.");
    prgDialg.setCancelable(false);
    prgDialg.setButton("Do something", myListener);
    prgDialg.show();
}

// Click listener
public OnClickListener myListener = new OnClickListener(){

    @Override
    public void onClick(DialogInterface dialog, int which) {
        textViev1.setText("xxx");
    }
试试这个

prgDialg.setButton("Do something", 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;
        }
    });
prgDialg.setButton(“做点什么”,myListener); 不推荐使用上述方法setButton(CharSequence text,DialogInterface.OnClickListener listener)

你可以用

private void showWaitDialog() {
    prgDialg = new ProgressDialog(this);
    prgDialg.setTitle("Working...");
    prgDialg.setMessage("Please wait.");
    prgDialg.setCancelable(false);
    prgDialg.setButton(DialogInterface.BUTTON_NEUTRAL, "Do something", this);
    prgDialg.show();
}

@Override
public void cancel() {

}

@Override
public void dismiss() {

}

为什么需要一个正在进行的按钮对话框?根据定义,如果在对话框上使用内置按钮,它将关闭对话框。如果您想与对话框进行更多的交互,您需要在其中添加一个视图,其中包含您想要的按钮等。@NareshR例如,一个取消按钮。@NareshR的可能副本不是true,您可以轻松地使用带有
setButton
ProgressDialog
来创建一个取消按钮。但是,在呈现
ProgressDialog
之后,需要设置
onClickListener
。我没有可用的
setNeutralButton
。这是从哪里得到的?当单击按钮时,仍然会关闭
ProgressDialog
。不幸的是,无论您在
onClickListener
中放置了什么,都无法使用此方法阻止
ProgressDialog
关闭。在显示
ProgressDialog
之后,您需要设置
onClickListener
。@JoshPinter,这实际上帮助了我。谢谢你,当然可以。请查看以下答案以获取示例:
private void showWaitDialog() {
    prgDialg = new ProgressDialog(context);
    prgDialg.setTitle("Working...");
    prgDialg.setMessage("Please wait.");
    prgDialg.setCancelable(false);
    prgDialg.setNeutralButton("Do Something", new View.OnClickListener() {

    @Override
    public void onClick(DialogInterface dialog, int which) {
                textViev1.setText("xxx");
    }
    });
    prgDialg.show();
}