2013-02-04 39 views
1

我有一个AlertDialog可以取消(通过后退按钮或在对话框外单击)。如果对话框取消,我需要撤消一些更改,所以我需要控制它何时取消。我试图创建我自己的子类AlertDialog来覆盖一些功能(我想我应该重写onContextMenuClosed,我想做一些测试,以找到正确的功能)。Android:AlertDialog取消时做些什么

我创建了自己的Builder,扩展了AlertDialog.Builder来创建我的对话框,并且我想覆盖create()函数。我检查了AlertDialog.Builder->create()代码,它使用变量AlertController.AlertParams P来获得一些所需的数据,但该变量是私有的,我无法从我的构建器访问它,所以我无法创建我的对话框。

如何控制AlertDialog是否被取消?使用setCancellable(false)不是一种选择,我希望用户能够取消它。

谢谢!

回答

5

尝试设置setOnCancelListener

dialog.setOnCancelListener(new DialogInterface.OnCancelListener() { //close the dialog  
     @Override 
     public void onCancel(DialogInterface dialog) { 
      //do something 
     } 
    }); 
+0

它的伟大工程。谢谢! –

1

您必须设置onCancelListener这样:

alertDialog.setOnCancelListener(new OnCancelListener() { 

     @Override 
     public void onCancel(DialogInterface dialog) { 
      // YOUR CODE HERE 

     } 
    });