0

我正在编写一个 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();
4

2 回答 2

0

代替 dialog.cancel()

采用

解除对话();

dismissDialog() 将包含自我名称作为参数。核实。

于 2012-07-20T11:38:04.840 回答
0

尝试dialog.dismiss()代替dialog.cancel();.

于 2012-07-20T11:39:58.437 回答