2016-04-20 55 views
0
DialogInterface.OnClickListener clickListener= new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       switch (which) 
       { 
        case BUTTON_POSITIVE : 
         udb.signout(); 
         break; 

        case BUTTON_NEGATIVE: 
         finish(); 
         break; 
       } 
      } 
     }; 

     AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext()); 
     builder.setTitle("Notification"); 
     builder.setMessage("You are already logged in.\nDo you want to signout and login with different account?"); 
     builder.setPositiveButton("Yes",clickListener); 
     builder.setNegativeButton("No",clickListener); 
     builder.show(); 

這是我的代碼顯示彈出對話框..但我得到問題 「builder.show()」行。我不明白我做錯了什麼。請。我會感謝任何幫助沒有顯示alertdialog框

+0

考慮添加錯誤消息 –

回答

2

首先,我親自測試設備上,

builder.show(); 

應該有作爲

AlertDialog dialog = builder.create(); 
dialog.show(); 

無論android.support.v7同樣的效果.app.AlertDialog使用android.app.AlertDialog

在我的情況下,我發現是什麼導致問題是AlertDialog.Builder被初始化。

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

Dialog documentation,你需要在活動傳遞給此構造,其中以下將工作:

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

,或者

AlertDialog.Builder builder = new AlertDialog.Builder(<YourActivity>.this); 
+0

它工作正常,當我更新AlertDialog.Builder builder = new AlertDialog.Builder( .this); –

+0

感謝您的幫助.. –

0

首先調用builder.create()。您無法顯示構建器本身。

+0

是不是'.create()'? – Bonatti

+0

@Bonatti謝謝你的錯誤 – kylexy1357

1

你有你的AlertDialog.Buildercreate對話框,然後顯示它...刪除builder.show();

AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext()); 
builder.setTitle("Notification"); 
builder.setMessage("You are already logged in.\nDo you want to signout and login with different account?"); 
builder.setPositiveButton("Yes",clickListener); 
builder.setNegativeButton("No",clickListener); 


AlertDialog alert = builder.create(); 
alert.show(); 
0

您需要使用AlertDialog.Builder對象創建AlertDialog對象並顯示對話框。對於例如,

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

/*All your dialog code*/ 

//Create AlertDialog object 
AlertDialog alertDialog = builder.create(); 
//show the AlertDialog using show() method 
alertDialog.show();