диалог оповещения в андроиде не должен сбрасывать со счетов - PullRequest
9 голосов
/ 08 июня 2011

Я подаю заявку, и в ней есть Alert Dialog.

Теперь я проверяю некоторые данные, полученные из AlertDialog editTexts в диалоговом окне. Метод OnClick «Позитивная кнопка», но диалоговое окно всегда закрывает, если данные, полученные из полей edittext, верны или нет.

Как мы можем отключить эту функцию.

ОБНОВЛЕНО:

Я получаю Пин-код и подтверждаю ПИН-код из диалогового окна, и в режиме «Нажатие» я проверил, чтобы проверить пин-коды.

Теперь, если пин-коды совпадают, тогда он вызывает dialog.dismiss () и, если не совпадает, отображает Toast.

Но в случае, если пин-код не совпадает, отображается сообщение и закрывается диалоговое окно.

Я не хочу, чтобы это произошло.

БОЛЬШЕ ОБНОВЛЕНИЙ:

есть ли способ отключить кнопку ОК, и когда данные будут проверены, активируется положительная кнопка?

Пожалуйста, помогите

Ответы [ 3 ]

27 голосов
/ 08 июня 2012

Это хитрость (переопределить onClickListener внутри onShowListener):

final AlertDialog d = new AlertDialog.Builder(context)
                .setView(v)
                .setTitle(R.string.my_title)
                .setPositiveButton(android.R.string.ok,
                        new Dialog.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface d, int which) {
                                //Do nothing here. We override the onclick
                            }
                        })
                .setNegativeButton(android.R.string.cancel, null)
                .create();

        d.setOnShowListener(new DialogInterface.OnShowListener() {

            @Override
            public void onShow(DialogInterface dialog) {

                Button b = d.getButton(AlertDialog.BUTTON_POSITIVE);
                b.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View view) {
                        // TODO Do something

                        //Dismiss once everything is OK.
                        d.dismiss();
                    }
                });
            }
        });
3 голосов
/ 12 июня 2011

Cap.Спасибо за вашу помощь.Из ваших руководств я узнал, что могу отключить диалоговую кнопку оповещения.ДА!можно отключить кнопки.

Ответ:

мы можем отключить кнопку, используя:

  Button pos =  Dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false);
  pos.setEnabled(true);
1 голос
/ 08 июня 2011

Если вы хотите закрыть диалоговое окно, когда захотите, вам нужно использовать диалоговое окно Custom вместо диалогового окна Alert.

AlertDialog всегда закрывается при нажатии отрицательной или положительной кнопки AlertDialog.

Для получения дополнительной информации о настраиваемом диалоговом окне затем Нажмите здесь Настраиваемый диалог

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...