我有一个对话框,如果选择"是",则启动视频。视频启动并播放,但完成后,对话框仍保留



我正在编写一个android程序来显示对话框,根据对话框中单击的按钮,它会显示或不显示视频。当用户单击"是"按钮时,它将播放。但当对话结束时,它仍然存在。为什么?

对话框的代码

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    //builder.setTitle(" MY_TEXT");
    builder.setMessage("Would you like to see a video?")
    .setView(checkBoxView)
    .setCancelable(false)
    .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            //Start the movie
            startVideo();
            dialog.cancel();
        }
    })
    .setNegativeButton("No", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            dialog.cancel();
        }
    }).show().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);

视频的代码

    getWindow().setFormat(PixelFormat.TRANSLUCENT);
    final VideoView videoHolder = new VideoView(this);
    //if you want the controls to appear
    videoHolder.setMediaController(new MediaController(this));
    Uri video = Uri.parse("android.resource://" + getPackageName() + "/" 
            + R.raw.documentariesandyou); //do not add any extension
    //if your file is named sherif.mp4 and placed in /raw
    //use R.raw.sherif
    videoHolder.setVideoURI(video);
    setContentView(videoHolder);
    videoHolder.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
            //exits video!
            videoHolder.stopPlayback();
            mp.release();
            finish();
        }
    });
    videoHolder.start();

尝试dialog.dismiss()而不是dialog.cancel();

对话框的Instaed。cancel()

使用

disseDialog();

disseDialog()将包含自身名称作为参数。检查一下。

最新更新