如何关闭弹出对话框?

时间:2011-03-25 12:24:59

标签: java android dialog

我的main.class文件中有一个简单的代码文本,用于创建popup对话框。当我尝试使用finish();方法关闭popupdialog时,它会关闭整个应用程序,而不仅仅是弹出对话框。我怎么解决这个问题? (这是针对android的,请看下面的评论)。

这是代码:

 Dialog dialog = new Dialog(this);
 dialog.setContentView(R.layout.start_dialog);
 dialog.setTitle("This is my custom dialog box");
 dialog.setCancelable(true);

 //there are a lot of settings, for dialog, check them all out!

 //set up text

 TextView text = (TextView) dialog.findViewById(R.id.TextView01);
 text.setText(R.string.loss);

 //set up image view
 ImageView img = (ImageView) dialog.findViewById(R.id.ImageView01);
 img.setImageResource(R.drawable.golf_ball);

 //set up button
 Button button = (Button) dialog.findViewById(R.id.Button01);

 button.setOnClickListener(new OnClickListener() {
         @Override
             public void onClick(View v) {
                                  finish();
                        }
                });
   //now that the dialog is set up, it's time to show it    
         dialog.show();

3 个答案:

答案 0 :(得分:0)

Jesmar,

您好,欢迎。

您可能打算使用Dialog上的dismiss功能。

button.setOnClickListener(new OnClickListener() {
         @Override
             public void onClick(View v) {
                                  dialog.dismiss();
                        }
                });

干杯!

答案 1 :(得分:0)

button.setOnClickListener(new OnClickListener() {
         @Override
             public void onClick(View v) {
                                  finish();
                        }
                });

实际上,finish()属于您的活动,而不是您的对话框。改为使用dialog.dismiss()

答案 2 :(得分:0)

使用cancel()或dismiss()

button.setOnClickListener(new OnClickListener() {
         @Override
             public void onClick(View v) {
                                  dialog.cancel();
                        }
                });

button.setOnClickListener(new OnClickListener() {
         @Override
             public void onClick(View v) {
                                  dialog.dismiss();
                        }
                });