3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

DialogFragmentのdismiss,cancel

Last updated at Posted at 2019-08-15

備忘録。

ダイアログの画面外をタッチされた時の処理を書こうと思ってググると、
setOnDismissListenerでいける!というブログを見つけたのでやってみると良く分からん挙動をする。

調べてみると、
http://oboe2uran.hatenablog.com/entry/2014/02/19/120653
setOnDismissListenerやsetOnCancelListenerは自分で書いてはいけないらしい。
代わりにonDismissやonCancelをOverrideすれば良いらしい。

ここまで来て、DismissとCancelの違いってなんぞ?って思って調べたら、
https://stackoverflow.com/questions/3125647/what-is-the-difference-between-a-dialog-being-dismissed-or-canceled-in-android

onDismissはOKボタンを押そうがキャンセルボタンを押そうがはたまたBackキーで戻ろうが画面外をタッチしようが、要はダイアログが終了するときに必ず呼ばれるらしい。
一方でonCancelは画面外タッチやBackキーと言ったボタン以外の(初心者開発者にとっては)非正規な動きでダイアログを閉じたときに呼ばれるらしい。

終了時、常にしたい処理はonDismissで、
イレギュラー対応はonCancelで書けば良いみたい。

なるほど。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?