0

ユーザーが画像を選択すると画像付きのダイアログを開くプロジェクトで作業しています。要件により、ダイアログの外側に触れたときにダイアログを閉じる必要があるため、dialog.setCanceledOnTouchOutside(true). しかし、別の要件では、ユーザーがダイアログの外側に触れたらすぐにページを変更する必要があるため、その方法を見つけようとしていました。しかし、私は と の両方を試しましonCancelListeneronDismissListener。を使用すると、それらのどれも呼び出されませんdialog.setCanceledOnTouchOutside(true)。ダイアログをキャンセルします。

4

2 に答える 2

3

クラスを使用している場合は、そのメソッドDialogFragmentをオーバーライドするだけです:onCancel()

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

    ...
}
于 2013-04-25T08:41:39.433 に答える
0

setCanceledOnTouchOutside を使用して追加の処理を追加できないことを理解しています。代わりに onTouchEvent をオーバーライドして、MotionEvent.ACTION_OUTSIDE を使用してボックスの外側に触れたときに処理を実行できます。

public boolean onTouchEvent(MotionEvent event)  
{  

   if(event.getAction() == MotionEvent.ACTION_OUTSIDE){  
           doStuff(); 
           this.dismiss();  
   }  
   return false;  
}  
于 2013-02-26T15:56:42.480 に答える