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

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

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

我想在这个ProgressDialog上设置一个onClickListenerbutton。 我试着用这个代码:

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

但它不工作。 我也尝试了其他类似的听众,但仍然没有成功。 我怎么解决这个问题?

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

 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(); 

确保在调用myDialog.show();之前调用myDialog.show();
你也可以使用myDialog.setButton("Cancel", (DialogInterface.OnClickListener) null); 如果你只需要closuresbutton点击对话框。

检查这个

 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");