Intereting Posts
Android: восстановление фокуса с помощью SurfaceView Программно получить цвет от ресурса, используя ContextCompat, который не игнорирует ночной отборочный Как избавиться от заполнителя в поле пароля, взятого с метки Как приложение Android может определить, какой магазин установил его? Android управляет несколькими запросами rxJava на устройстве вращения Невозможно загрузить .apk из https OpenGL ES 2.0 артефакты / сглаживание в FBO на Мали-400 Какова ценность mPlaceHolderBitmap на странице разработчика Android? Android: как получить атрибут из суперкласса пользовательского вида GetDatabase вызывается рекурсивно при вставке записи в oCreate моего класса DbHelper Ошибка. У указанного дочернего элемента уже есть родитель. Вы должны сначала вызвать removeView () родителя ребенка Венгерская нотация в соглашениях об именах Android Меню параметров, не отображаемое в ICS с использованием библиотеки совместимости Способ сохранения результатов HTML через JS Samsung Note 2 не может достичь onLocationChanged ()

Как нажать «ОК» на AlertDialog через код?

Я использую showDialog и dismissDialog в dismissDialog чтобы отображать и уничтожать мой диалог. Есть ли способ выпустить команду клика в текущем отображаемом диалоговом окне без сохранения переменной, ссылающейся на диалог?

Например, я хочу нажать кнопку «Ok» / «Добавить» в диалоговом окне с помощью кода.

Я не тестировал этот код, но он должен работать:

 AlertDialog dialog = ... dialog.getButton(DialogInterface.BUTTON_POSITIVE).performClick(); 

В качестве альтернативы, если вы не хотите сохранять ссылку на диалог, но контролируете его настройку, вы можете извлечь код щелчка в другой метод:

 AlertDialog.Builder builder = ... builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { onPositiveButtonClicked(); } }); 

И реализуем onPositiveButtonClicked() в вашей деятельности. Вместо программного нажатия кнопки «ОК» вы можете вызвать onPositiveButtonClicked() и dismissDialog(id) . Если вам нужно обрабатывать несколько диалогов, onPositiveButtonClicked параметр id .

Я хочу нажать кнопку «ОК» / «Добавить» в диалоговом окне с помощью кода

Да, вы можете сделать это, получив экземпляр performClick() BUTTON, а затем вызовите на нем performClick() . Попробуйте:

 Button okButton = alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); okButton.performClick(); //<<< click Button using code 

Попробуй это:-

 AlertDialog.Builder alBuilder = new AlertDialog.Builder(this); alBuilder .setMessage("Do you wamt to exit?") .setPositiveButton("Yes", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); // Write your code here for Yes } }) .setNegativeButton("No", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); // Write your code here for No } }); alBuilder.setCancelable(false); alBuilder.show();