Android 自定义对话框未显示

Android custom dialog not displayed

我想通过显示自定义对话框在用户收到消息后立即通知他们。我有一个对话框的自定义布局并这样引用它:

builder = new AlertDialog.Builder(this);
        dia = builder.create();
builder = new AlertDialog.Builder(MapActivity.this); //builder = alertbuilder object
            LayoutInflater inflater = getLayoutInflater();
            View dialoglayout = inflater.inflate(R.layout.dialog_layout, null);
            builder.setView(dialoglayout);
            builder.setTitle("REQUEST");
            builder.setMessage("Would you like to accept it?");
            //builder.show();
            dia.show(); //dia = dialog object

            spRequest.play(spSoundId, 1, 1, 1, 15, 1);
                new Handler().postDelayed(new Runnable() {
                    @Override
                    public void run() {

                        dia.cancel();

                    }
                }, 7000); 

我想播放一个音色池并显示对话 7 分钟然后停止。但是 soundpool 播放但不播放对话,而是屏幕黑了 7 分钟。我怎样才能使这项工作?

嗨,我是初学者,但我认为您在 LayoutInflater 行中遇到了一个命令。 尝试添加 getActivity() 它需要看起来像这样。

 LayoutInflater inflater = getActivity().getLayoutInflater();

希望对你有所帮助

已解决:我正在使用空构建器创建对话框。顺序是在将构建器对象分配给对话框对象之前,构建器对象应该填充自定义布局和所有你想要的东西,否则对话框将显示但它将是空白的。这是适合像我一样受苦的人的正确代码:)

builder = new AlertDialog.Builder(MapActivity.this);
            LayoutInflater inflater = getLayoutInflater();
            View dialoglayout = inflater.inflate(R.layout.dialog_layout, null);
            builder.setView(dialoglayout);
            builder.setTitle("REQUEST");
            builder.setMessage("Would you like to accept?");
            dia = builder.create();
            //builder.show();
            dia.show();

            spRequest.play(spSoundId, 1, 1, 1, 15, 1);
               new Handler().postDelayed(new Runnable() {
                   @Override
                   public void run() {
                       dia.dismiss();
                   }
               }, 7000);    //the alert will play for 7 seconds and stop