AlertDialog не отправляет обратный вызов при создании - PullRequest
0 голосов
/ 30 августа 2011

У меня есть этот простой код:

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

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

dialog.show();

Диалог отображается, но моя активность не получает обратных вызовов.Нет onPrepareDialog, ничего.

Могу ли я как-то перехватить AlertDialog без реализации пользовательского класса, расширяющего AlertDialog?

Спасибо.

Ответы [ 3 ]

1 голос
/ 30 августа 2011
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();
0 голосов
/ 30 августа 2011
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();
0 голосов
/ 30 августа 2011

onPrepareDialog вызывается только для диалогов, управляемых действием (т. Е. Диалогов, созданных и возвращенных с Activity.onCreateDialog(int) и показанных с помощью Activity.showDialog(int)).Поскольку вы создаете и отображаете диалоговое окно напрямую, эти методы не будут вызываться.

См. Создание диалогов для получения дополнительной информации об управляемых диалогах.

Чтобы ответить на использование ввода- как нажатие кнопок - вы захотите использовать методы построения, как показано в ответе Алежки.

...