自定义视图中的Android显示对话框

时间:2015-03-25 12:56:14

标签: dialog android-custom-view

我创建了一个显示简单游戏的自定义视图

我在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();
        }

然而,该页面已冻结。对话框没有显示。

1 个答案:

答案 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
  

**见Dialog creation context