Android 在自定义视图中显示对话框
Android show dialog in Custom View
我创建了一个显示简单游戏的自定义视图
我在MainActivity中设置自定义视图
setContentView(new CustomView())
在这个自定义视图中,只有几个球和计时器
当一个球碰到另一个球时。计时器将停止并显示结果。
我不知道如何以更好的方式显示结果。所以我尝试创建一个对话框来显示结果。
这段代码写在CustomView中class
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();
}
但是,页面被冻结了。对话框没有显示。
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() 有效(应该是 activity,服务上下文)**
在 activity 中使用 this 或 Myactivity.this 在片段 interface/callback 中 getActivity()
**see Dialog creation context
我创建了一个显示简单游戏的自定义视图
我在MainActivity中设置自定义视图
setContentView(new CustomView())
在这个自定义视图中,只有几个球和计时器
当一个球碰到另一个球时。计时器将停止并显示结果。
我不知道如何以更好的方式显示结果。所以我尝试创建一个对话框来显示结果。
这段代码写在CustomView中class
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();
}
但是,页面被冻结了。对话框没有显示。
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() 有效(应该是 activity,服务上下文)** 在 activity 中使用 this 或 Myactivity.this 在片段 interface/callback 中 getActivity()
**see Dialog creation context