问题描述
public void showTestDialog() {
new AlertDialog.Builder(this)
.setMessage("Message")
.show();
}
它本来要复杂得多,带有标题,正,负按钮,每个按钮调用更多代码,等等。这简直是我所能获取的,但仍然会导致崩溃。
public void testButton(View view) {
showTestDialog();
}
但是当我从菜单项单击中调用它时,它在显示...后几秒钟便崩溃了。
@Override
public boolean onoptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.testDialog:
showTestDialog();
return true;
default:
return false;
}
}
在我的控制台/日志窗口中,这是我单击菜单项时出现的行:
D / Openglrenderer:0x9fa61c80(MenuPopupWindow $ Menudropdownlistview)上的endAllActiveAnimators,其句柄为0x92d16a80
...然后这是虚拟设备突然关闭时出现的唯一行:
设备仿真器-5554已断开连接,监视已停止。
这是崩溃报告窗口:
我已经为我的GPU(GTX 1070)安装了最新的驱动程序,但是仍然可以通过全新下载重新安装,但是没有任何问题。 我在这里已经好几个小时了,没有运气。我做错了什么?我对此很陌生。谢谢!
解决方法
使用静态上下文创建对话框,例如
new AlertDialog.Builder(mContext).setMessage("Message").show();
此mContext在oncreate方法中分配上下文。
在onCreate中定义AlertDialog实例,然后在单击菜单按钮时显示对话框。您也不需要其他方法来显示对话框。