无法在材质对话框中显示按钮

时间:2021-02-03 12:01:43

标签: android xml android-layout

我在应用中使用材料设计主题。我试图在应用程序中显示 Material Design 对话框,但在对话框中没有显示正面和负面按钮。下面是我的代码:

   new MaterialAlertDialogBuilder(getActivity())
                    .setMessage("Do you want to close this application ?")
                    .setNegativeButton("NO", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
                        }
                    })
                    .setPositiveButton("YES", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            Toast.makeText(getApplicationContext,"Hello",Toast.LENGTH_SHORT).show();
                        }
                    }).show();

themes.xml

<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.Caketale" parent="Theme.MaterialComponents.Light">
    <!-- Primary brand color. -->
    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryVariant">@color/primaryDark</item>
    <item name="colorOnPrimary">@color/white</item>
    <item name="colorSecondary">@color/accent</item>
    <item name="colorSecondaryVariant">@color/accent</item>
    <!-- Secondary brand color. -->
 <!--   <item name="colorSecondary">@color/teal_200</item>   -->
 <!--   <item name="colorSecondaryVariant">@color/teal_700</item>   -->
    <item name="colorOnSecondary">@color/black</item>
    <!-- Status bar color. -->
    <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
    <!-- Customize your theme here. -->

 </style>

</resources>

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

要将其与设计库一起使用,请使用此样式。

<style name="AlertDialogTheme" parent="Theme.MaterialComponents.Light.Dialog.Alert">
    <item name="colorPrimary">@color/colorAccent</item>
</style>

然后你就这样使用它。

    AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.AlertDialogTheme);
builder.setTitle("AppCompatDialog");
builder.setMessage("Lorem ipsum dolor...");
builder.setPositiveButton("OK", null);
builder.setNegativeButton("Cancel", null);
builder.show();