2015-12-10 3 views
0

Я пытаюсь отменить диалог, если условие истинное, но оно не работает. В диалоговом окне, введенном в условие, но не упущенное. В случае корректного отображения сообщения тоста.Диалог не уволен, если условие

public void showIncomingCall() { 

     int getTotal = 0; 

     if(showincoming != null && showincoming.isShowing()) 
     { 
      //adapter1.notifyDataSetChanged(); 
      //showincoming.dismiss(); 
      return; 
     } 
     else { 
      showincoming = new Dialog(MainActivity.this); 
      showincoming.requestWindowFeature(Window.FEATURE_NO_TITLE); 
      showincoming.setContentView(R.layout.custome_dialog); 
      listdialog = (ListView) showincoming.findViewById(R.id.incoming_list); 
      //adapter1 = new CustomeListAdapter(MainActivity.this); 
      listdialog.setAdapter(adapter1); 
      //adapter1.notifyDataSetChanged(); 
      close = (ImageButton) showincoming.findViewById(R.id.dialog_close); 

      close.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 

        showincoming.dismiss(); 
        adapter1.notifyDataSetChanged(); 
       } 
      }); 

      adapter1.notifyDataSetChanged(); 

      for (int i = 0; i < listdialog.getCount(); i++) { 
       parentView = getViewByPosition(i, listdialog); 
       String getString = ((TextView) parentView.findViewById(R.id.tvLineStatus)).getText().toString(); 

       if (getString.toString().equals("Idle") || getString.toString().equals("Disconnect") || getString.toString().equals("Dialing")) { 
        getTotal += 1; 
       } 
      } 
      if (getTotal >= 7) { 
        showincoming.dismiss(); 
        Toast.makeText(getApplicationContext(),"getTotal" + getTotal,Toast.LENGTH_LONG).show(); 
        adapter1.notifyDataSetChanged(); 

       //adapter1.setNotifyOnChange(true); 
      } 
      //Toast.makeText(MainActivity.this,getTotal+"getTotal",Toast.LENGTH_LONG).show(); 
      adapter1.notifyDataSetChanged(); 
      listdialog.invalidateViews(); 
      if(!showincoming.isShowing()) { 
       showincoming.show(); 
      } 
     } 
} 
+0

Вы логически вызываете метод увольнения() перед методом show(), почему? – Harry

+0

в основном вы не можете сделать это, когда ваш диалог открыт ... ваше основное действие будет приостановлено ... так что его код не будет выполняться ... вы должны отменить диалог из самого открытого диалога –

+0

Я пытаюсь разобраться в диалоге даже после того, как диалог отклонен, я ставлю тост после того, как упустил этот тост, но диалог не отклоняется. –

ответ

0

showincoming = new Dialog(MainActivity.this); объявляет ниже int getTotal = 0; вне else т.е. заявления , то вы можете получить Referance диалогового объекта и можете dissmiss диалог. попробуйте это и дайте мне знать

+0

Я пробую эту вещь, но не работал даже после того, как уволил diaog i call toast, который отлично работал :( –

+0

это происходит только тогда, когда объект, который вы использовали для отображения диалога, недоступен для отклонения диалога, попробуйте написать только метод dialog.show внутри инструкция цикла или if-else. Объявление и инициализация должны выполняться на уровне метода или класса – sud

+0

oh thanx я попробую это –