2013-02-26 70 views
0

我正在一個項目中,當用戶選擇一個圖像時,打開一個對話框與圖像。現在由於要求我必須關閉對話框時,在對話框外觸摸,所以我設置dialog.setCanceledOnTouchOutside(真)。 但另一個要求說,我應該改變頁面,只要用戶觸摸對話框,所以我試圖找出如何做到這一點。但我已經嘗試onCancelListener和onDismissListener.None他們會被調用,當我們使用對話框.setCanceledOnTouchOutside(真)。取消對話框。如何讓偵聽器setCanceledOnTouchOutside(true)

有沒有人有任何想法。

回答

0

這是我的理解,你不能作爲替代與setCanceledOnTouchOutside 添加額外的處理,你可以重寫你的onTouchEvent做的東西,當他們接觸使用MotionEvent.ACTION_OUTSIDE像這樣

public boolean onTouchEvent(MotionEvent event) 
{ 

    if(event.getAction() == MotionEvent.ACTION_OUTSIDE){ 
      doStuff(); 
      this.dismiss(); 
    } 
    return false; 
} 
+0

這並不在我的情況下工作。有其他選擇嗎? – 2016-07-07 08:54:24

3

外包裝箱如果您使用DialogFragment類,只覆蓋其onCancel()方法:

@Override public void onCancel(DialogInterface dialog) { 
    super.onCancel(dialog); 

    ... 
}