首页 > 解决方案 > 如何在androidX中实现一个警告对话框

问题描述

我已将我的项目迁移到 androidX,并且我想实现一个警报对话框,其中包含来自用户的正面和负面反馈。

我正在使用这段代码:

AlertDialog.Builder builder1 = new AlertDialog.Builder(getApplicationContext());

               builder1.setMessage("Write your message here.");
               builder1.setCancelable(true);

               builder1.setPositiveButton(
                       "Yes",
                       new DialogInterface.OnClickListener() {
                           public void onClick(DialogInterface dialog, int id) {

                               Log.d("MSG", "onClick: YES");
                           }
                       });

               builder1.setNegativeButton(
                       "No",
                       new DialogInterface.OnClickListener() {
                           public void onClick(DialogInterface dialog, int id) {
                               dialog.cancel();
                               Log.d("MSG", "onClick: No");

                           }
                       });

               AlertDialog alert11 = builder1.create();
               alert11.show();

但是在运行应用程序时出现此错误:

java.lang.IllegalStateException:您需要在此活动中使用 Theme.AppCompat 主题(或后代)。

标签: javaandroidandroid-alertdialogandroidxmaterial-components-android

解决方案


您可以使用材料组件库MaterialAlertDialogBuilder提供的。

只需使用:

new MaterialAlertDialogBuilder(context)
            .setTitle("Dialog")
            .setMessage("Write your message here. ....")
            .setPositiveButton("Ok", /* listener = */ null)
            .setNegativeButton("Cancel", /* listener = */ null)
            .show();

MaterialAlertDialogBuilder需要一个 Material 主题,并且会生成一个androidx.appcompat.app.AlertDialog.


推荐阅读