2014-10-17 77 views
0

Iam在設備震動中顯示AlertDialog。問題是當我搖動設備時,AlertDialog顯示兩次。因此,如果我解僱AlertDialog,那麼頂級的人會被解僱,但在第一個人之後仍然會有人出現。AlertDialog多次創建Android

此外,Iam顯示相同的AlertDialog從代碼的另一部分,它顯示在按鈕單擊時,它工作正常。

所有這些都是在ViewPager中完成的。

我該如何避免這種情況?

這裏是我的代碼: -

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


    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 

      } 
     }); 

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

      public void onClick(DialogInterface dialog, int which) 
      { 
       // Do nothing but close the dialog 

       new AddStatusTask().execute(); 

      } 

     }); 


     builder.show(); 
    } 
+0

你在哪裏解僱你的對話? – Piyush 2014-10-17 05:29:45

+0

檢查對話框中是否已經顯示然後顯示它..不是 – Meenal 2014-10-17 05:32:16

+0

@iam stack任何適合你的答案? – 2014-12-04 07:27:14

回答

0

檢查這樣

if (alertDialog != null && !alertDialog.isShowing()) { 
     //then show your dialog..else not 
    } 
0

而不是 builder.show();

使用

// create alert dialog 
alertDialog = builder.create(); 

// show it 
alertDialog.show(); 

並檢查這裏像

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

if(alertDialog != null && !alertDialog.isShowing()){ 
showDialog(timeString, "Confirm ."); 

} }

+0

感謝您的回答。我試過你的代碼。但是現在AlertDialog根本不顯示。正如我在問題中提到的,Iam在ViewPager中的一個片段中顯示AlertDialog。 – 2014-10-17 05:46:24

0

刪除線alertDialog.show();從showDialog(..)方法並使用像這樣。

@Override 
public void onShake(float force) 
{ 
// TODO Auto-generated method stub 
showDialog(timeString, "Confirm ."); 
if(alertDialog != null && !alertDialog.isShowing()){ 
    alertDialog.show(); 
} } 
+0

這也行不通。它仍然給出相同的輸出 – 2014-10-17 06:00:00

+0

問題是,當第一次顯示ViewPager中的片段並且我搖動設備時,警告對話正常工作,並且正確解散。但是,如果在片段顯示問題發生時搖動手機 – 2014-10-17 06:02:01

相關問題