我创建了一个显示简单游戏的自定义视图
我在MainActivity中设置了自定义视图
setContentView(new CustomView())
在这个自定义视图中,只有很少的球和计时器
当球碰到另一个球时。计时器将停止并显示结果。
我不知道如何以更好的方式显示结果。所以我试图创建一个对话框来显示结果。
此代码在CustomView类中编写
if (ballIsTouch) {
AlertDialog alertDialog = new AlertDialog.Builder(getContext()).create();
alertDialog.setTitle("Result");
alertDialog.setMessage(point);
alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
alertDialog.show();
}
然而,该页面已冻结。对话框没有显示。
答案 0 :(得分:0)
create() - 是最后一步 - 当您使用构建器模式创建对话框时,首先在链中设置所有变量,然后创建对话框 - 并显示它应该是
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getContext());
alertDialogBuilder.setTitle("Result");
alertDialogBuilder.setMessage(point);
alertDialogBuilder.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
或
alertDialogBuilder.setTitle("Result")
.setMessage(point)
.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
确保getContext()有效(应该是活动,服务上下文)** 活动在片段 getActivity()
中的接口/回调中使用此或 Myactivity.this