2016-04-20 57 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();