2016-04-25 62 views
0

我创建的警报对话,但标题和消息不是这里显示的是我的警报对话代码警报对话的标题和消息未显示

holder.add.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      AlertDialog.Builder builder; 
      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
       builder = new AlertDialog.Builder(context, android.R.style.Theme_Material_Dialog_Alert); 
      } else { 
       builder = new AlertDialog.Builder(context); 
      } 
      builder.setTitle("Alert"); 
      builder.setMessage("Are you sure") 
        .setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int id) { 

         } 
        }) 
        .setNegativeButton("No", new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int id) { 
          // User cancelled the dialog 
         } 
        }); 
      AlertDialog dialog = builder.create(); 
      dialog.show(); 
     } 
    }); 

这是它的屏幕截图enter image description here

回答

0

而不是context ,尝试使用ActivityName.this

+0

感谢兄弟这个工作 –

0

我不知道是什么造成的,但开始时我很肯定你不需要分别拨打builder.create()然后dialog.show()

直接调用builder.show()并让Alert Dialog Builder处理其创建和显示。如果您确实需要dialog实例,请从builder.show()的结果中获得它。

关于文本的缺失,也许你在压倒一些风格,你有没有检查文本是否仅仅是白色的,因为这是“隐形”?

+0

我用buider.show()不工作 –

+0

您可以发布您样式来源为'Theme_Material_Dialog_Alert'? –

0

您必须在AlertBuilder中传递主题。

AlertDialog.Builder myAlert = new AlertDialog.Builder(getContext(), R.style.AppCompatAlertDialogStyle); 
deleteAlert.setTitle(title); 
deleteAlert.setMessage(message); 
deleteAlert.setPositiveButton(android.R.string.ok, clickListener); 
deleteAlert.setNegativeButton(android.R.string.cancel, clickListener); 
deleteAlert.show(); 

如果您已调用show(),则无需调用create()方法。因为show()方法在内部调用create()。

注: 我可以从我的经验中清楚地说出这个问题。我错过了通过主题。

R.style.AppCompatAlertDialogStyle 

不起作用:

AlertDialog.Builder myAlert = new AlertDialog.Builder(getContext()); 

WORKS SUCCESFULLY:

AlertDialog.Builder myAlert = new AlertDialog.Builder(getContext(), R.style.AppCompatAlertDialogStyle);