我想在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();
}
});
但它不起作用。我也试过其他类似的听众,但仍然没有成功。 我该如何解决这个问题?
答案 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");