2014-10-13 3 views
-1

У меня есть метод, который показывает AlertDialog. Когда нажата кнопка «Да», диалог отклоняется и выполняется AsyncTask. С кнопкой «Отмена» он просто увольняется. Iam вызывает этот метод из двух других методов. Он вызывается при нажатии кнопки и секунде, когда устройство встряхивается. Alertdialog отлично работает, когда я вызываю его нажатием кнопки. Но при встряске устройства AlertDialog не отклоняется, когда я нажимаю кнопку «Да». Asynctask выполняется в обоих случаях.AlertDialog не отклоняет Android

Вот мой код: -

@Override 
    public void onShake(float force) 
    { 
     // TODO Auto-generated method stub 

     showDialog(timeString, "Confirm Running late by 1 hour."); 
    } 

rlSaveRunningLate.setOnClickListener(new View.OnClickListener() 
     { 

      @Override 
      public void onClick(View v) 
      { 
       // TODO Auto-generated method stub 
       if(timeString == null || hourLimit ==10 && minLimit ==30) 
       { 
        timeString = hour+":"+mins+":"+today.second; 
        Toast.makeText(getActivity(), "Please select time.", Toast.LENGTH_LONG).show(); 
       } 
       else 
       { 
        showDialog(timeString, "Confirm"); 
       } 

      } 
     }); 

    public void showDialog(String timeString, String title) 
    { 

     builder = new AlertDialog.Builder(getActivity()); 

     builder.setTitle(title); 
     builder.setMessage("Reaching at:"+" "+ timeString+"?"); 

     builder.setNegativeButton("NO", new DialogInterface.OnClickListener() { 

      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       // Do nothing 
       dialog.dismiss(); 
       dialog.cancel(); 
      } 
     }); 

     builder.setPositiveButton("YES", new DialogInterface.OnClickListener() { 

      public void onClick(DialogInterface dialog, int which) 
      { 
       // Do nothing but close the dialog 
       dialog.dismiss(); 
       dialog.cancel(); 
       new AddTask().execute(); 

      } 

     }); 


     builder.show(); 
    } 
+0

@downvoter Было бы лучше, если бы вы оставить причину downvoting, поскольку это будет способствовать дальнейшие –

ответ

0

попробовать этот

public void onClick(DialogInterface dialog, int which) 
       { 
      new AddTask().execute(); 
      dialog.dismiss(); 
      dialog.cancel(); 
     } 
+0

Спасибо за ваш ответ. Но это все равно покажет Alertdialog, пока не будет выполнена AsyncTask. Который я не хочу. Я хочу отклонить его до выполнения Asynctask. Потому что я показываю ProgressDialog в AsyncTask позже, который перекрывает AlertDialog, если он не уволен до –

+0

, вы можете отменить alertdialog из asyntask onPostexecute() method @ iamstack – Nooh

Смежные вопросы