AlertDialog在创建时不发送回调

时间:2011-08-30 11:37:36

标签: android callback alertdialog

我有这个简单的代码:

AlertDialog dialog = new AlertDialog.Builder(this).create();

dialog.setTitle ("Alert title");
dialog.setMessage ("This is an alert");

dialog.show();

显示对话框但我的Activity没有收到任何回调。没有onPrepareDialog,没什么。

我可以以某种方式挂钩AlertDialog而不实现扩展AlertDialog的自定义类吗?

感谢。

3 个答案:

答案 0 :(得分:1)

AlertDialog dialog;
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Alert title").setMessage("This is an alert");
builder.setPositiveButton("Ok", new Dialog.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {

}
});
dialog = builder.create();
dialog.show();

答案 1 :(得分:0)

onPrepareDialog仅针对由Activity管理的对话框调用(即,使用Activity.onCreateDialog(int)创建并通过Activity.showDialog(int)显示的对话框)。由于您是直接创建和显示对话框,因此不会调用这些方法。

有关托管对话框的详细信息,请参阅Creating Dialogs

要响应使用输入 - 例如按钮点击 - 您将需要使用alezhka答案所示的构建器方法。

答案 2 :(得分:0)

AlertDialog alertDialog;    
AlertDialog.Builder builder = new AlertDialog.Builder(this);

    builder.setMessage("your message");
    builder.setTitle("Alert message");
    builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub

        }
    });
    builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub

        }
    });
    alertDialog = builder.create();
    alertDialog.show();