显示android if对话框

显示android if对话框,android,android-alertdialog,final,Android,Android Alertdialog,Final,我有震动器,在震动动作中我想显示对话。我有一个问题,当执行多次震动时,会显示多个对话框。我想一次只显示一个对话框 所以我写了这段代码,但它显示了错误。一行需要“final AlertDialog”,另一行不需要“final” 编辑:谢谢,dialog.builder();看起来很有效。但现在我遇到了一个新问题——NullPointerException,出现在我检查警报对话框是否显示的行上。 现在我试着: if(builder.isShowing() == false) 固定NullPoint

我有震动器,在震动动作中我想显示对话。我有一个问题,当执行多次震动时,会显示多个对话框。我想一次只显示一个对话框

所以我写了这段代码,但它显示了错误。一行需要“final AlertDialog”,另一行不需要“final”

编辑:谢谢,dialog.builder();看起来很有效。但现在我遇到了一个新问题——NullPointerException,出现在我检查警报对话框是否显示的行上。 现在我试着:

if(builder.isShowing() == false)
固定NullPointerException

if(builder == null){
builder.setButton("OK", new DialogInterface.OnClickListener(){
                public void onClick(DialogInterface dialog, int which){
                    dialog.dismiss();
                    builder = null; 
}
}

builder.disease()
更改为
dialog.disease()
删除
builder.disease()并将其替换为
dialog.dismis()
,在侦听器上,您会得到一个对话框对象,该对象对应于触发事件的对话框

将AlertDialog声明为活动中的一个字段,不需要将其设置为最终字段。

尝试只创建一次对话框,这样您就可以检查对话框是否已创建,如果是,若它正在显示,我认为这对我来说是行不通的,因为若用户关闭第一个对话框并再次进行抖动,我想让另一个对话框可用。
if(builder == null){
builder.setButton("OK", new DialogInterface.OnClickListener(){
                public void onClick(DialogInterface dialog, int which){
                    dialog.dismiss();
                    builder = null; 
}
}