检查代码中是否有重复创建AlertDialog的问题 原因:如果AlertDialog已经存在,但是又被重复创建,会导致程序崩溃 示例代码: //错误示例,重复创建AlertDialog AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setTitle("提示"); builder.setMessage("这是一个提示框"); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //do something } }); builder.create(); //这里会创建一个AlertDialog对象 builder.show(); //这里又会创建一个AlertDialog对象,导致程序崩溃
//正确示例,只创建一个AlertDialog
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("提示");
builder.setMessage("这是一个提示框");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//do something
}
});
AlertDialog alertDialog = builder.create(); //只创建一个AlertDialog对象
alertDialog.show();
检查使用的主题是否正确 原因:有些主题可能不支持AlertDialog,需要更换主题才能正常使用 示例代码: //错误示例,使用了不支持AlertDialog的主题
//正确示例,使用支持AlertDialog的主题
检查使用的Context是否正确 原因:在Android中,不同的Context对应的是不同的生命周期和作用域,如果使用了不正确的Context,可能会导致AlertDialog崩溃