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