5、6年越しでDialogFragmentの結果コールバックを作成してみた
2869 ワード
概要
DialogFragmentが世に現れてかれこれ5〜6年ぐらい経ちました。
何度もDialogFragmentを使ってきましたが、毎回どのように実装していたか忘れる始末…
ちょっと余裕があるときにDialogFragmentの結果を返却するベースクラスを作ってみました。
設計としては、Activityのコールバックを受け取るonActivityResultと同じように、DialogFragmentが貼り付いている親に結果を返却する流れになります。
work.d128.fragment.app.dialogFragment.WDDialogFragmentがベースクラスです。
使い方
WDDialogFragmentを継承したDialogFragmentクラスを作成します。
class DatePickerDialogFragment: WDDialogFragment() {
}
OKボタンをタップしたタイミングなどでIntentにコールバックで受け渡したいデータを詰め込み、setResultにセットします。
val intent = Intent()
intent.putExtra(<Key>, <Value>)
setResult(RESULT_OK, intent)
コールバックを受け取るActivityまたはFragmentにinterfaceを追加することで、コールバックを受け取ることができるようになります。
class MainFragment: Fragment(), WDDialogFragment.OnResultListener {
override fun onFragmentResult(requestTag: String, resultCode: Int, data: Intent?) {
}
}
参考文献
Author And Source
この問題について(5、6年越しでDialogFragmentの結果コールバックを作成してみた), 我々は、より多くの情報をここで見つけました https://qiita.com/nakan-D128/items/2ad2d595837cd307ad83著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .