Intereting Posts
В чем разница между атрибутами background, backgroundTint, backgroundTintMode в макете xroid? CardView не показывает Shadow в Android L Android ActionBar – нажмите пользовательский вид в нижней части экрана. Как избежать отображения перекрытия в относительной компоновке в android? Не удалось выполнить компиляцию AAPT2: неверный размер на Android 3.0 Canary 1 Travis CI застрял в запуске инструментов сборки на Android "Java.lang.IllegalArgumentException: никакие конфиги не соответствуют configSpec" При открытии камеры Intent Вопросы и ответы на мобильные вопросы для Android и Symbian NFC (FAQ) Android RadioButton не может отключиться с помощью метода setChecked (false) Когда включен OnAttach во время цикла Fragment LifeCycle? Уточнить соединения Firebase Android – невозможно открыть содержимое: файл: /// storage / emulated / 0 Что такое ориентационные константы для взглядов? Только некоторые пользователи сообщают об ошибке «Ресурс не найден». Имеет ли это смысл? OnServiceConnected () не вызывается

Как проверить, открыт или нет диалог?

У меня есть статический метод, в котором я создаю диалог

public static void showDialog(Context context) { AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setTitle("Title"); builder.setMessage("Message"); builder.setPositiveButton("ok", new OnClickListener() { public void onClick(DialogInterface dialog, int arg1) { dialog.dismiss(); }}); builder.setCancelable(false); builder.create().show(); } 

В моем приложении может быть ситуация, когда метод можно вызвать несколько раз, но я не хочу открывать 2 или более диалоговых окна. Как проверить, открыто или нет диалоговое окно? Благодаря…

Solutions Collecting From Web of "Как проверить, открыт или нет диалог?"

Вы должны поместить этот код в каждое действие, которое вы хотите поддержать этой функцией.

 public AlertDialog myAlertDialog; public void showDialog(Context context) { if( myAlertDialog != null && myAlertDialog.isShowing() ) return; AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setTitle("Title"); builder.setMessage("Message"); builder.setPositiveButton("ok", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int arg1) { dialog.dismiss(); }}); builder.setCancelable(false); myAlertDialog = builder.create(); myAlertDialog.show(); } 

Перепишите свой метод, чтобы вернуть AlertDialog , назначьте его члену и проверьте перед вызовом этого метода, если он !isShowing() null или !isShowing() .
onCreateDialog этого вы можете использовать onCreateDialog . Внесите этот метод в базовый класс для своих действий, которые нуждаются в управлении диалоговым окном, а затем вызовите showDialog(int id) там, где вы хотите.

  AlertDialog alertDialog; alertDialog = new AlertDialog.Builder(this).create(); alertDialog.setTitle(title); alertDialog.setMessage(msg); alertDialog.setButton(-3, "Text Parsed", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub dialog.dismiss(); } }); alertDialog.show();