2013-08-06 2 views
0

У меня есть UDP-сервер, который отправляет данные клиенту. Отображение данных (на стороне клиента) осуществляется с помощью диалогового окна. Проблема в том, что если у меня есть многократная отправка одинаковых данных, будет несколько диалоговых окон с одинаковым значением. Я хочу удалить другие диалоговые окна, чтобы сохранить диалоговое окно с уникальным значением.Проверьте, существует ли конкретный alertdialogbox android

ответ

1
if(dialog != null && dialog.isShowing()) 
{ 
    return; 
} 

и когда задача полное использование dialog.dismiss();

+0

Как я могу проверить, содержит ли это диалоговое окно то же значение? – Nina

0

Как использовать какой-либо набор на основе уникального идентификатора данных, которые вы получаете? Идентификатор должен совпадать с несколькими «отправками» одних и тех же данных.

private AlertDialog.Builder mDialogBuilder = new AlertDialog.Builder(Context.this); 
private Set<Integer> mShownDialogs = new HashSet<Integer>(); 

public void onReceive(final MyData data) { 
    final Integer dataHash = data.getUniqueHash(); 
    if (!mShownDialogs.contains(dataHash)) { 
     mShownDialogs.add(dataHash); 

     mDialogBuilder.setTitle(data.getTitle()); 
     mDialogBuilder.setMessage(data.getMessage()); 
     AlertDialog dialog = mDialogBuilder.create(); 
     dialog.setOnDismissListener(new DialogInterface.OnDismissListener() { 
      @Override 
      public void onDismiss(DialogInterface dialog) { 
       // If I want to show a dialog with the same dataHash some 
       // time in the future, I should remove from set. 
       mShownDialogs.remove(dataHash); 
      } 
     }); 
     dialog.show(); 
    } else { 
     // Discard the data? 
    } 
} 
Смежные вопросы