标题在AlertDialog

时间:2018-01-09 08:11:45

标签: android alertdialog

我正在尝试在android中显示AlertDialog。问题是对话框的标题出现了2次。我希望它只显示一个标题?我该怎么办?

这就是对话框的样子 Dialog showing 2 titles

这就是我展示对话框的方式

   AlertDialog alertDialog = new AlertDialog.Builder(this, android.R.style.Theme_Material_Dialog).create();
                    alertDialog.setTitle(R.string.ttl_alrt_dlg_dont_asked_again);
                    alertDialog.setMessage("AI bifat nu ma mai intreba asa ca mergi in setari");
                    alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
                            new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog, int which) {
                                    dialog.dismiss();


                                    actv.finish();
                                    //ActivityCompat.requestPermissions(actv,
                                      //      new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
                                        //    MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE);
                                }
                            });
                    alertDialog.show();

5 个答案:

答案 0 :(得分:1)

试试这个:

AlertDialog alertDialog = new AlertDialog.Builder(this)
            .setTitle("title")
            .setMessage("AI bifat nu ma mai intreba asa ca mergi in setari")
            .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    dialog.dismiss();
                    actv.finish();
                }
            })
            .create();
    alertDialog.show();

答案 1 :(得分:1)

它看起来像android.R.style.Theme_Material_Dialog,第一个标题是ActionBar

<强>解决方案

1。只使用它没有风格。它无论如何都会在材料设计中显示出来。

2. 或者您可以使用android.R.style.Theme_Material_Dialog_NoActionBar

  AlertDialog alertDialog = new AlertDialog.Builder(this, android.R.style.Theme_Material_Dialog_NoActionBar).create();
  alertDialog.setTitle(R.string.ttl_alrt_dlg_dont_asked_again);
  alertDialog.setMessage("AI bifat nu ma mai intreba asa ca mergi in setari");
  alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                }
            });
    alertDialog.show();

答案 2 :(得分:0)

删除此行 - :

alertDialog.setTitle(R.string.ttl_alrt_dlg_dont_asked_again);

答案 3 :(得分:0)

它的Theme_Material_Dialog问题。所以你必须通过创建样式来自定义自己的对话框。

请参阅此有用的回答here

这个完整的答案another_here

答案 4 :(得分:0)

使用AppCompatDialogFragment时遇到类似的问题。最终避免了如下使用,标题显示了两次:

<style name="dialogfrag_title" parent="Theme.MaterialComponents.Light.Dialog">
    <item name="android:windowNoTitle">true</item>
    <item name="android:padding">@dimen/lyt_margin</item>
    <item name="android:windowBackground">@color/appBackground</item>
</style>

以及片段类中的下一行。

        getDialog().setTitle("About "+ user.name());