如何在androidX中实现警报对话框

时间:2019-09-17 16:02:25

标签: java android android-alertdialog androidx material-components-android

我已将项目迁移到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主题(或后代)。

1 个答案:

答案 0 :(得分:2)

您可以使用MaterialAlertDialogBuilder提供的Material Components library

只需使用:

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

MaterialAlertDialogBuilder需要一个Material主题,并将产生一个androidx.appcompat.app.AlertDialog